Sencillos pasos para transferir datos entre un cliente y un servidor en Java mediante el protocolo TCP
En este tutorial se mostrará cómo se pueden comunicar dos programas executados en distintos equipos mediante sockets utlizando Java.
Un socket (o puerto) es un punto de comunicación entre sistemas que corresponde al dispositivo físico d'entrada/salida de una máquina. Bàsicamente, existen dos tipos de protocolos para establecer conexiones entre varios equipos: TCP y UDP.
TCP, (Transmission Control Protocol) y UDP (User Datagram Protocol). Para entendernos, TCP es un protocolo en el que hay un proceso de negociación (handshaking) entre los afectados cliente y servidor y de cómo se envían los datos, si se han recibido bien, etc. Mientras que UDP es un servicio en el que los datos se van enviando y recibiendo sin ese acuerdo. De forma que UDP es un sistema de comunicación más rápido en una red en la que se pierdan pocos paquetes.
En este caso utilizaremos el protocolo TCP para crear un servidor y un cliente que se comuniquen.
En el código del cliente al crear el socket debemos especificar a qué ip nos conectaremos y a qué puerto. Hay algunos puertos reservados por lo que siempre miraremos de escoger uno bastante alto. En este caso 10831.
Para que el cliente encuentre el servidor hay que especificar el mismo puerto.
Finalmente para ver que hay una comunicación procedemos a ejecutar el servidor y luego el cliente. Veremos que se imprimirá por pantalla la cadena pasada por el cliente sólo si el servidor se está ejecutando.