Java UDP: Come inviare un file

November 14

La User Datagram Protocol (UDP) utilizza il formato "datagram" per inviare e ricevere dati. Proprio come i socket tipici Java, la classe "datagramsockets" si collega ad ospitare le macchine attraverso il protocollo UDP per inviare pacchetti di informazioni. UDP è un semplice protocollo che non fa alcun controllo degli errori, in modo da pacchetti inviati potrebbero arrivare fuori ordine o di andare dispersi. Tuttavia, quando l'affidabilità non è richiesto tanto come velocità di trasmissione, UDP può offrire un'alternativa ad altri metodi di trasmissione. In questi casi, è possibile utilizzare Java "Datagram" oggetti di inviare i pacchetti via UDP.

istruzione

1 Creare la classe di base per inviare il datagramma UDP, con funzione principale. La classe utilizzerà il "DatagramPacket," "DatagramSocket," e "biblioteche InetAddress":

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

class SendUDP {

Main (string [] args) {public static void

}
}

2 Creare un nuovo DatagramSocket e DatagramPacket nel metodo principale. L'oggetto socket datagram invierà l'oggetto datagramma pacchetto, che otterrà le sue informazioni dal array di byte "buffer":

DatagramSocket s = new DatagramSocket ();

byte[] buf = new byte[1000];
DatagramPacket out;

3 Creare un messaggio di esempio per inviare su UDP, e codificarlo in array di byte "buf:"

String outString = "Questo è il messaggio";
buf = outString.getBytes ();

4 Istanziare il "out" pacchetto datagramma con l'array buffer di byte contenente il messaggio, e puntare verso l'indirizzo IP del ricevitore, ricevuto tramite il metodo "getByName". Il numero "9999" rappresenta un numero di porta aperta per le connessioni UDP sulla fine del ricevitore: questo potrebbe essere qualsiasi numero di porta, a seconda della configurazione del server ricevente.

InetAddress ricevitore = InetAddress.getByName ( "http: //www.sun.java.com");

DatagramPacket out = new DatagramPacket (buf, buf.length, ricevitore, 9999);

5 Inviare il pacchetto. Ora che il pacchetto datagramma contiene informazioni necessarie per inviare, trasmettere attraverso la presa Datagram:

s.send (out);