Programa de demostración con sockets UDP en Java

Publicado: agosto 2, 2011 en Uncategorized

Fuente de este codigo (GRACIAS!): http://www-gti.det.uvigo.es/~pedro/pub/lsodtr/boletinse2.html

B.1. Emisor de dos mensajes: EmisorUDP.java

1
2import java.net.*;
3import java.io.*;
4
5public class EmisorUDP {
6  public static void main(String args [] ) {
7    // Los argumentos dan:
8    // el nombre de la máquina receptora y 2 mensajes
9    if (args.length != 3) {
10      System.err.println(~Uso: java EmisorUDP maquina msj1 msj2~);
11    }
12    else try{
13      // Crea su socket
14      DatagramSocket elSocket = new DatagramSocket();
15
16      // Construye la dirección del socket del receptor
17      InetAddress maquina = InetAddress.getByName(args[0]);
18      int puerto = 1234;
19
20      // Crea el primer mensaje
21      byte [] cadena = args[1].getBytes();
22      DatagramPacket mensaje = new DatagramPacket(cadena,
23                                args[1].length(), maquina, puerto);
24
25      // Envía el primer mensaje
26      elSocket.send(mensaje);
27
28      // Crea el segundo mensaje
29      cadena = args[2].getBytes();
30      mensaje.setData(cadena);
31      mensaje.setLength(args[2].length());
32
33      // Envía el segundo mensaje
34      elSocket.send(mensaje);
35
36      // Cierra su socket
37      elSocket.close();
38    } catch(UnknownHostException e) {
39      System.err.println(“Desconocido: ” + e.getMessage());
40    } catch(SocketException e) {
41      System.err.println(“Socket: ” + e.getMessage());
42    } catch(IOException e) {
43      System.err.println(“E/S:” + e.getMessage());
44    }
45  }
46}

 

B.2. Receptor de dos mensajes: ReceptorUDP.java

1
2import java.net.*;
3import java.io.*;
4
5public class ReceptorUDP {
6  public static void main(String args [] ) {
7    // Sin argumentos
8    if (args.length != 0) {
9      System.err.println(~Uso: java ReceptorUDP~);
10    }
11    else try{
12      // Crea su socket
13      DatagramSocket elSocket = new DatagramSocket(1234);
14
15      // Crea el espacio para los mensajes
16      byte [] cadena = new byte[1000] ;
17      DatagramPacket mensaje1 =
18                         new DatagramPacket(cadena, cadena.length);
19
20      // Recibe y muestra el primer mensaje
21      elSocket.receive(mensaje1);
22      System.out.println(“Mensaje Recibido: (” +
23          new String(mensaje1.getData(), 0, mensaje1.getLength()) +
24          “) longitud = ” + mensaje1.getLength());
25
26      DatagramPacket mensaje2 =
27                         new DatagramPacket(cadena, cadena.length);
28
29      // Recibe y muestra el segundo mensaje
30      elSocket.receive(mensaje2);
31      System.out.println(“Mensaje Recibido: (” +
32          new String(mensaje2.getData(), 0, mensaje2.getLength()) +
33          “) longitud = ” + mensaje2.getLength());
34    } catch(SocketException e) {
35      System.err.println(“Socket: ” + e.getMessage());
36    } catch(IOException e) {
37      System.err.println(“E/S: ” + e.getMessage()); }
38  }
39}
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s