Diferentes tipos de sockets en Internet

En primer lugar deberé explicar qué es un socket. De un modo muy simple, se puede decir que es una manera de hablar con otra computadora. Para ser más preciso, es una manera de hablar con otras computadoras usando descriptores de ficheros estándar de Unix. En Unix, todas las acciones de entrada y salida son desempeñadas escribiendo o leyendo en uno de estos descriptores de fichero, los cuales son simplemente un número entero, asociado a un fichero abierto que puede ser una conexión de red, un terminal, o cualquier otra cosa[1]

Ahora bien, sobre los diferentes tipos de sockets en Internet, hay muchos tipos pero sólo se describirán dos de ellos - Sockets de Flujo (SOCK_STREAM) y Sockets de Datagramas (SOCK_DGRAM).

Y “¿cuál es la diferencia entre estos dos tipos?”, podrías preguntarte. He aquí la respuesta:

Sockets de Flujo. Están libres de errores: Si por ejemplo, enviáramos por el socket de flujo tres objetos "A, B, C", llegarán al destino en el mismo orden -- "A, B, C". Estos sockets usan TCP ("Transmission Control Protocol"[2]) y es este protocolo el que nos asegura el orden de los objetos durante la transmisión.

Sockets de Datagramas. Éstos usan UDP (“User Datagram Protocol”[3]), y no necesitan de una conexión accesible como los Sockets de Flujo -- se construirá un paquete de datos con información sobre su destino y se enviará afuera, sin necesidad de una conexión.

Mucho más podría explicarse aquí sobre estas dos clases de sockets, pero creo que esto es suficiente como para captar el concepto básico de socket. Entender qué es un socket y algo sobre estos dos tipos de sockets de Internet es un buen comienzo, pero lo más importante será saber cómo trabajar con ellos. Esto se aprenderá en las próximas secciones.

Notas

[1]

Recuérdese uno de los primeros conceptos que aprendemos al usar UNIX, “En un sistema Unix, todo es un fichero”. Nota del T.

[2]

Protocolo de Control de Transmisión. Nota del T.

[3]

Protocolo de los Datagramas de Usuario. Nota del T.