Tecnología

Inicio

Java UDP: Cómo enviar un archivo

El Protocolo de datagramas de usuario (UDP) utiliza el formato "datagrama" para enviar y recibir datos. Al igual que tomas típicos de Java, la clase "datagramsockets" se conecta a la sede de las máquinas a través del protocolo UDP para enviar paquetes de información. UDP es un protocolo simple que no hace ninguna comprobación de errores, por lo que los paquetes enviados podrían llegar fuera de orden o van a faltar. Sin embargo, cuando la fiabilidad no se requiere tanto como la velocidad de transmisión, UDP puede ofrecer una alternativa a otros métodos de transmisión. En estos casos, puede utilizar objetos "datagramas" Java para enviar paquetes a través de UDP.

Instrucciones

1 Crear la clase base para enviar el datagrama UDP, con una función principal. La clase va a utilizar el "DatagramPacket", "DatagramSocket," y "bibliotecas" InetAddress:

java.net.DatagramPacket importación;
java.net.DatagramSocket importación;
java.net.InetAddress importación;

SendUDP clase {

principales argumentos (String []) {public static void

}
}

2 Crear un nuevo DatagramSocket y DatagramPacket en el método principal. El objeto socket de datagramas enviará el objeto paquetes de datagramas, que tendrá su información de la matriz de bytes "buffer":

DatagramSocket s = new DatagramSocket ();

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

3 Crear un mensaje de muestra para enviar a través de UDP, y codificarlo en la matriz de bytes "buf:"

OutString cadena = "Este es el mensaje";
buf = outString.getBytes ();

4 Una instancia del paquete de datagrama "fuera" con el conjunto de bytes tampón que contiene el mensaje, y señalar hacia la dirección IP del receptor, recibida a través del método "getByName". El número "9999" representa un número de puerto abierto a conexiones UDP en el extremo del receptor: esto podría ser cualquier número de puerto, dependiendo de la configuración del servidor de recepción.

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

DatagramPacket cabo = new DatagramPacket (buf, buf.length, receptor, 9999);

5 Enviar el paquete. Ahora que el datagrama contiene la información necesaria para enviar, transmitir a través de la toma de datagramas:

s.send (hacia fuera);