User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio de datagramas (Encapsulado de capa 4 Modelo OSI). Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente información de direccionamiento en su cabecera. Tampoco tiene confirmación ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de entrega o recepción.
Mas Información en: http://es.wikipedia.org/wiki/User_Datagram_Protocol
CÓDIGO:
Servidor
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import java.io.*;
import java.net.*; class ServerUDP{
public static void main(String args[]) throws Exception{
DatagramSocket serverSocket = new DatagramSocket(9876); byte[] reciboData = new byte[1024]; byte[] envioData = new byte[1024]; while(true){ DatagramPacket receivePacket = new DatagramPacket(reciboData, reciboData.length); serverSocket.receive(receivePacket); String cadena = new String( receivePacket.getData()); System.out.println("RECIBIDO: " + cadena); InetAddress IPAddress = receivePacket.getAddress(); int puerto = receivePacket.getPort(); String cadenaMayusucula = cadena.toUpperCase(); envioData = cadenaMayusucula.getBytes(); DatagramPacket sendPacket = new DatagramPacket(envioData, envioData.length, IPAddress, puerto); serverSocket.send(sendPacket); } } } |
Cliente:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.io.*;
import java.net.*; class ClienteUDP{ public static void main(String args[]) throws Exception{
BufferedReader leerTeclado =
new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("localhost"); byte[] envioData = new byte[1024]; byte[] recibidoData = new byte[1024]; String cadena = leerTeclado.readLine(); envioData = cadena.getBytes(); DatagramPacket sendPacket = new DatagramPacket(envioData, envioData.length, IPAddress, 9876); clientSocket.send(sendPacket); DatagramPacket receivePacket = new DatagramPacket(recibidoData, recibidoData.length); clientSocket.receive(receivePacket); String cadenamodificada = new String(receivePacket.getData()); System.out.println("SERVIDOR:" + cadenamodificada); clientSocket.close(); } } |
No hay comentarios:
Publicar un comentario