En aplicaciones cliente-servidor, el servidor proporciona algún servicio, como procesar consultas a bases de datos o enviar los precios actualizados del stock. El cliente utiliza el servicio proporcionado por el servidor para algún fin, mostrar los resultados de la consulta a la base de datos, o hacer recomendaciones de pedidos a un inversor. La comunicación que ocurre entre el cliente y el servidor debe ser fiable -- los datos no puede caerse y deben llegar al lado del cliente en el mismo orden en el que fueron enviados.
TCP proporciona un canal de comunicación fiable punto a punto, lo que utilizan para comunicarse las aplicaciones cliente-servidor en Internet. Las clases Socket y ServerSocket del paquete java.net proporcionan un canal de comunicación independiente del sistema utilizando TCP.
Un socket es un punto final en un enlace de comunicación de dos vías entre dos programas que se ejecutan en la red. Las clases Socket son utilizadas para representar conexiones entre un programa cliente y otro programa servidor. El paquete java.net proporciona dos clases -- Socket y ServerSocket -- que implementan los lados del cliente y del servidor de una conexión, respectivamente.
Esta página contiene un pequeño ejemplo que ilustra cómo un programa cliente puede leer y escribir a través de un socket.
La página anterior mostró un ejemplo de cómo escribir en un programa cliente que interactua con servidor existente mediante un objeto Socket. Esta página muestra cómo se puede escribir un programa que implemente el otro lado de la conexión -- un programa servidor.