Skip to main content

¿Qué es el zócalo C?

"Socket C" es un término que a veces se usa para referirse al proceso de escribir código de socket en el lenguaje de programación C y a veces se usa para referirse al archivo de biblioteca real que contiene la implementación para algunas funciones de socket. El archivo real de la biblioteca de socket C contiene implementaciones para diferentes funciones y macros que proporcionan la funcionalidad básica de socket proporcionada por las bibliotecas de lenguaje, aunque el archivo de socket C depende del sistema operativo y podría no implementarse en algunos sistemas. Escribir código de socket C implica crear una interfaz con un protocolo de entrada y salida estándar, conocido como socket, y usarlo para enviar o recibir información, generalmente a través de una red o mediante un hardware. El lenguaje de programación C está diseñado para ser portátil, pero la programación de sockets se basa en algunas funciones específicas del sistema de bajo nivel, por lo que a veces puede ser difícil escribir programas en C que usen sockets pero también mantengan la portabilidad entre sistemas.

Hay tres tipos básicos de sockets que admite el socket C. El primero se conoce como datagrama, el segundo es una secuencia y el tercero es el acceso sin formato. Un datagrama es un tipo de socket que envía información en pequeños paquetes conocidos como paquetes. Cada paquete se envía desde una fuente con información sobre el socket de destino que está buscando a través de una red. Si bien un datagrama puede ser un método eficiente de comunicación a través de sockets y a menudo se usa para enviar correos electrónicos, también es con pérdida, porque no se garantiza que ningún paquete enviado llegue al socket de destino.

Un socket de flujo se conecta a otro socket y la información se pasa directamente entre los sockets. Cuando se usa en la programación del socket C, este tipo de socket garantiza que todos los datos que se envían se reciben del otro lado. Sin embargo, una complicación es que el socket a veces puede usar el bloqueo, lo que significa que detendrá la ejecución de un proceso hasta que se reciba información o hasta que se cierre el socket, aunque el uso de hilos o procesos bifurcados puede resolver este problema en la mayoría de los casos. El acceso al socket sin formato se proporciona como un medio para interactuar en un nivel casi de hardware con cualquier dispositivo que aloje el socket.

Los enchufes se usan comúnmente en varias formas para las comunicaciones de Internet. El hardware y los controladores que permiten la conexión en red varían mucho según el sistema operativo, por lo que puede ser difícil ubicar un archivo de biblioteca de socket C que admita todas las combinaciones posibles. Por esta razón, el archivo de socket C en sí, así como el archivo de encabezado de socket, a menudo contiene una larga lista de directivas de compilación condicional para que se compile de manera diferente en varios sistemas.