The User Datagram Protocol ( UDP ) bruker " datagram " format for å sende og motta data . Mye som typiske Java stikkontakter , forbinder " datagramsockets " class å være vert maskiner gjennom UDP protokollen til å sende pakker med informasjon . UDP er en enkel protokoll som ikke gjør noen feil merke , så pakker som sendes kanskje kommer i feil rekkefølge eller gå glipp av. Men når pålitelighet ikke er nødvendig så meget som hastigheten for overføring, kan UDP tilbyr et alternativ til andre overføringsmetoder . I slike tilfeller kan du bruke Java " Datagram " objekter for å sende pakker via UDP . Du trenger:
Java Development Kit ( JDK )
Vis flere instruksjoner
en
Lag base klassen å sende UDP datagram , med en hovedfunksjon . Klassen vil bruke " DatagramPacket ", " DatagramSocket , " og " InetAddress " biblioteker : en
import java.net.DatagramPacket , import java.net.DatagramSocket ; import java.net.InetAddress ;
klasse SendUDP {
public static void main ( String [] args ) {
} }
2
Opprett en ny DatagramSocket og DatagramPacket i den viktigste metoden . Datagram socket objektet vil sende datagram packet objekt , som vil få sin informasjon fra byte array " buffer" : en
DatagramSocket s = new DatagramSocket (); byte [ ] buf = new byte [ 1000 ]; DatagramPacket ut ;
3
Lag en prøve melding å sende over UDP , og kode den inn i byte array " buf : "
String outString = "Denne er budskapet "; buf = outString.getBytes () ;
4
Instantiate " ut " datagram pakke med buffer byte array som inneholder meldingen , og peker mot IP adressen til mottakeren fikk gjennom " getByName " metoden. Tallet " 9999 " representerer et portnummer åpne for UDP- tilkoblinger på mottakerens ende : . Dette kan være et portnummer , avhengig av mottaksenheten serverens konfigurasjon
InetAddress mottaker = InetAddress.getByName ( " http : //www.sun.java.com ");
DatagramPacket ut = new DatagramPacket ( buf , buf.length , mottaker , 9999) ;
5
Send pakken . Nå som datagram pakken inneholder nødvendig informasjon for å sende , overføre det gjennom Datagram socket : en
s.send ( ut);