Redes en Java: clases java.net, sockets TCP y datagramas UDP

InformáticaActualizado el 3,07 KB

Resumen

El documento explica cómo programar comunicaciones en red en Java desde la capa de aplicación, usando las clases del paquete java.net. Compara los protocolos TCP y UDP, presenta las clases principales como URL, ServerSocket, Socket, DatagramSocket e InetAddress, y describe el papel de los puertos para distinguir las aplicaciones de un mismo equipo.

Puntos clave

  • TCP es un protocolo orientado a la conexión que garantiza la entrega de los datos y su orden.
  • UDP no está orientado a la conexión: envía datagramas independientes sin garantizar entrega ni orden.
  • ServerSocket permite al servidor escuchar peticiones de conexión en un puerto; Socket se usa en cliente y servidor para leer y escribir datos mediante streams.
  • DatagramSocket, MulticastSocket y DatagramPacket dan soporte a la comunicación mediante UDP.
  • La clase InetAddress representa direcciones de Internet, y la clase URL representa un puntero a un recurso web.
  • Los puertos permiten diferenciar a qué aplicación del equipo van dirigidos los datos que llegan por una única conexión física.
  • Para enviar datos a una máquina concreta hay que conocer su dirección IP de 32 bits y el puerto de destino.

Ponte a prueba

Clases Java para Comunicaciones en Red

Los equipos conectados a Internet se comunican utilizando el protocolo de transporte TCP o UDP. Cuando se escriben programas Java que se comunican a través de la red, se está programando en la capa de aplicación. Normalmente, no es necesario preocuparse por las capas de transporte TCP o UDP; en su lugar, se utilizan las clases del paquete java.net. Existen diferencias entre unas clases y otras, y debemos decidir qué clases usar en los programas.

Diferencias Clave: TCP vs. UDP

  • TCP: Protocolo basado en la conexión. Garantiza que los datos enviados desde un extremo de la conexión lleguen al otro extremo y, además, que lleguen en el mismo orden en que fueron enviados. Se establece un canal de comunicación particular entre las dos aplicaciones.
  • UDP: No está basado en la conexión. Envía de una aplicación a otra paquetes de datos independientes denominados datagramas. El orden de entrega no es importante y no se garantiza la entrega de los paquetes enviados.

El Paquete java.net: Clases e Interfaces Esenciales

El paquete java.net contiene clases e interfaces para la implementación de aplicaciones que se comunican en red:

  • La clase URL (Uniform Resource Locator): Representa un puntero a un recurso en la web.
  • La clase URLConnection: Admite operaciones más complejas en la URL.
  • Las clases ServerSocket y Socket: Para dar soporte a sockets TCP.
    • ServerSocket: Utilizada por el programa servidor para crear un socket en un puerto por el que está escuchando las peticiones de conexión de los procesos clientes.
    • Socket: Utilizada tanto por el proceso cliente como por el proceso servidor para comunicarse entre sí, escribiendo y leyendo datos utilizando Streams.
  • Las clases DatagramSocket, MulticastSocket y DatagramPacket: Para dar soporte a la comunicación entre aplicaciones vía datagramas UDP.
  • La clase InetAddress: Que representa las direcciones de Internet.

Los Puertos en la Comunicación de Red

En general, un ordenador tiene una única conexión física a la red. Los datos destinados a ese ordenador llegan a través de esa conexión; sin embargo, los datos pueden estar destinados a diferentes aplicaciones que se están ejecutando en el equipo. Mediante el uso de puertos, se diferencian los datos destinados a cada aplicación en el ordenador.

Los datos transmitidos a través de Internet van acompañados de información de direccionamiento que identifica la máquina y el puerto al que están destinados. La máquina se identifica por su dirección IP de 32 bits, por lo tanto, para enviar datos a una máquina concreta necesitamos conocer su

Descargar

PDF Word HTML

Preguntas frecuentes

¿Cuál es la diferencia entre TCP y UDP en Java?

TCP es un protocolo basado en la conexión que garantiza la entrega de los datos y su orden de llegada. UDP no está basado en la conexión, envía datagramas independientes y no garantiza la entrega ni el orden.

¿Para qué se usan los puertos en la comunicación en red?

Los puertos permiten diferenciar los datos destinados a cada aplicación que se ejecuta en un mismo ordenador, que tiene una única conexión física a la red.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué protocolo garantiza que los datos lleguen en el mismo orden en que fueron enviados?
2. ¿Qué clase utiliza el programa servidor para escuchar peticiones de conexión?
3. ¿Qué representa la clase InetAddress?
4. ¿Cuántos bits tiene la dirección IP que identifica una máquina según el texto?
5. ¿Qué clase se usa en UDP para contener los paquetes de datos?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.