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 bidireccional entre dos programas que se ejecutan en una red. La toma proporciona un punto final de comunicación bidireccional para enviar y recibir datos con otra toma. Las conexiones de enchufe normalmente funcionan entre dos ordenadores diferentes en una red de área local (LAN) o a través de Internet, pero también se pueden utilizar para la comunicación entre procesos en un único ordenador.
Enchufes y direcciones
Los puntos finales de sockets en redes TCP/IP tienen cada uno 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 del servidor
Normalmente, un servidor se ejecuta en un ordenador y tiene un socket que está vinculado a un puerto específico. El servidor espera a que otro ordenador realice una solicitud de conexión. El ordenador cliente conoce el nombre de host del ordenador servidor y el número de puerto en el que el servidor está escuchando. El ordenador cliente se identifica y, si todo va bien, el servidor permite que el ordenador cliente se conecte.
Bibliotecas de sockets
En lugar de codificar directamente a APIs de zócalos de bajo nivel, los programadores de red suelen utilizar bibliotecas de zócalos. Dos bibliotecas de enchufes de uso común son Berkeley Sockets para sistemas Linux/Unix y WinSock para sistemas Windows.
Una biblioteca de sockets proporciona un conjunto de funciones de API similares a las que los programadores utilizan para trabajar con archivos, como open(), read(), write() y close().