La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Comunicación Servidor-Cliente sin conexión

Presentaciones similares


Presentación del tema: "Comunicación Servidor-Cliente sin conexión"— Transcripción de la presentación:

1 Comunicación Servidor-Cliente sin conexión
Hasta ahora hemos visto cómo se logran comunicar 2 programas estableciendo entre ellos un circuito virtual a traves de una conexión TCP/IP Sabemos que en una conexión de este tipo se genera mucho tráfico y que la comunicación es más lenta, ya que el protocolo subyacente de confirmación, retransmisión, descarte y/o reordenación de paquetes se basa en mensajes de datagramas. Habíamos visto que a veces el usuario debería optar por una transmisión sin conexión, especialmente si no es necesario garantizar la llegada de todos los datagramas. Para eso existen en JAVA todos lor recursos de modo de mandar un datagrama aislado a un destinatario dado. NOTAS

2 Comunicación Servidor-Cliente sin conexión: pasos a seguir
La comunicación se basa en armar paquetes UDP y enviarlos a la internet con la siguiente información: datos: un arreglo de bytes número de port del destinatario: int Dirección Internet del destinatario: InetAddress El servidor se pone a escuchar en un socket dado si hay paquetes destinados a él. El cliente arma un paquete y lo lanza a la internet. El servidor recibe el paquete y extrae los datos, numero de port y dirección internet del enviador. Si necesita responder manda un paquete a la dirección (port y dirección internet) que venía en el paquete recibido NOTAS

3 Manejo de Datagramas en JAVA
La comunicación se basa en armar paquetes UDP y enviarlos a la internet con la siguiente información: datos: un arreglo de bytes número de port del destinatario: int Dirección Internet del destinatario: InetAddress El servidor se pone a escuchar en un socket dado si hay paquetes destinados a él. El cliente arma un paquete y lo lanza a la internet. El servidor recibe el paquete y extrae los datos, numero de port y dirección internet del enviador. Si necesita responder manda un paquete a la dirección (port y dirección internet) que venía en el paquete recibido NOTAS

4 Clases para Datagramas en JAVA: envío
Definición: Un datagrama es un mensaje independiente, autocontenido que se manda de un programa a otro por la red pero que su llegada, tiempo de llegada y contenido no estan garantizados. Crear un socket por donde mandar el datagrama DatagramSocket ds = new DatagramSocket(); Crear y armar el datagrama byte[] datos = new byte[256]; InetAddress direccion = InetAddress.getByName(“ DatagramPacket paquete = new DatagramPacket(datos, datos.length,direccion,4444); Mandarlo ds.send(paquete); Esperar respuesta socket.receive(packet); //limpiarlo antes !!! NOTAS

5 Clases para Datagramas en JAVA: recepción
Para poder recibir tengo que escuchar en un port acordado (ya que de otra manera no hay como ponerse de acuerdo) socket = new DatagramSocket(4444); preparar un Datagrama para recibir datos byte[] datos = new byte[256]; DatagramPacket paquete = new DatagramPacket(datos,datos.length); Ponerse a escuchar si alguien manda un datagrama a este computador a este port socket .receive(paquete); Sacar los datos, el port y la dirección de donde venía int port = paquete.getPort(); InetAddress dirección = paquete getAddress(); String contenido = new String(paquete.getData()); Mandar una respuesta DatagramPacket respuesta = new DatagramPacket(datos, datos.length, port, direccion); NOTAS


Descargar ppt "Comunicación Servidor-Cliente sin conexión"

Presentaciones similares


Anuncios Google