La programación de sockets es la tecnología fundamental detrás de las comunicaciones en redes TCP / IP. Un socket es un punto final de un enlace de dos vías entre dos programas que se ejecutan en una red. El zócalo proporciona un punto final de comunicación bidireccional para enviar y recibir datos con otro zócalo. Las conexiones de zócalo normalmente se ejecutan entre dos computadoras diferentes en una red de área local (LAN) o a través de Internet, pero también pueden usarse para la comunicación entre procesos en una sola computadora.
Zócalos y Direcciones
Los puntos finales de socket en las redes TCP / IP tienen una dirección única que es la combinación de una dirección IP y un número de puerto TCP / IP. Debido a que el socket está vinculado a un número de puerto específico, la capa TCP puede identificar la aplicación que debe recibir los datos que se le envían. Al crear un nuevo socket, la biblioteca de socket genera automáticamente un número de puerto único en ese dispositivo. El programador también puede especificar números de puerto en situaciones específicas.
Cómo funcionan los sockets de servidor
Normalmente, un servidor se ejecuta en una computadora y tiene un socket que está vinculado a un puerto específico. El servidor espera a que una computadora diferente realice una solicitud de conexión. El equipo cliente conoce el nombre de host del equipo servidor y el número de puerto en el que el servidor está escuchando. El equipo cliente se identifica a sí mismo y, si todo sale bien, el servidor permite que el equipo cliente se conecte.
Bibliotecas Socket
En lugar de codificar directamente a las API de socket de bajo nivel, los programadores de red suelen utilizar bibliotecas de socket. Dos bibliotecas de sockets comúnmente utilizadas son Berkeley Sockets para sistemas Linux / Unix y WinSock para sistemas Windows.
Una biblioteca de sockets proporciona un conjunto de funciones API similares a las que usan los programadores para trabajar con archivos, como open (), read (), write () y close ().