¿Qué es Socket C?
"Socket C" es un término que a veces se utiliza para referirse al proceso de redacción del código de socket en el lenguaje de programación C y, a veces, se utiliza para referirse al archivo de biblioteca real que contiene la implementación de algunas funciones de socket. El archivo de biblioteca Socket C real contiene implementaciones para diferentes funciones y macros que proporcionan la funcionalidad básica de Socket suministrada por las bibliotecas de idiomas, aunque el archivo Socket C depende del sistema operativo y podría no implementarse en algunos sistemas. Escribir el 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 una pieza de hardware. El lenguaje de programación C está destinado a ser portátil, pero la programación de socket 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 mantienen la portabilidad del sistema cruzado.
Hay tres tipos básicos de enchufes que admite el zócalo C. El primero se conoce como datagrama, el segundo es un flujo y el tercero es el acceso sin procesar. Un datagrama es un tipo de zócalo que envía información en paquetes pequeños conocidos como paquetes. Cada paquete se envía desde una fuente con información sobre el socket de destino que busca en una red. Si bien un datagrama puede ser un método eficiente para comunicarse a través de los enchufes y, a menudo, se usa para enviar correo electrónico, también es con pérdida, porque no se garantiza que ningún paquete se envíe al socket de destino.
Un socket de flujo hace una conexión a otro enchufe y la información se pasa directamente entre los enchufes. Cuando se usa en la programación de Socket C, este tipo de socket asegura que todos los datos que se envían se reciben en el otro lado. Sin embargo, una complicación es que el zócalo a veces puede usar el bloqueo, lo que significa que el enchufe detendrá la ejecución de un proceso hastaSe recibe 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 Raw se proporciona como un medio para interactuar realmente en un nivel de hardware casi con cualquier dispositivo que esté alojando el enchufe.
Los enchufes comúnmente se usan en varias formas para comunicaciones de Internet. El hardware y los controladores que permiten que ocurra la red varíen mucho por el sistema operativo, por lo que puede ser difícil localizar un archivo de biblioteca Socket C que admita todas las combinaciones posibles. Por esta razón, el archivo Socket C en sí, así como el archivo de encabezado Socket, a menudo contiene una larga lista de directivas de compilación condicional, por lo que se compilará de manera diferente en varios sistemas.