IPC: Sockets

    Los sockets son una abstracción que nos proporciona un estructura de direccionamiento y un conjunto de protocolos utilizado para la comunicación entre procesos. Estos procesos pueden estar en la misma maquina (dominio local) o en distintas maquinas (dominios de Internet).

    Los tipos de sockets definen las propiedades de la comunicación que estarán disponibles para la aplicación. Los procesos solamente pueden comunicarse mediante sockets del mismo tipo. Existen 5 tipos diferentes:

    Stream socket – comunicación en dos sentidos, secuenciada y segura (SOCK_STREAM). En el dominio de internet utiliza el protocolo TCP (similar a una conversación telefónica)

    Datagram socket – comunicación en dos sentidos, no asegura la secuencialidad de los mensajes enviados (un mensaje que ha sido enviado después de otro puede llegar antes que este) y tampoco es segura (el equipo de origen no sabe si el mensaje ha alcanzado su objetivo o no) (SOCK_DGRAM). En el dominio de Internet utiliza UDP (similar al envío y recepción de correos)

    Secuencial packet socket – comunicación en dos sentidos, secuenciada y segura para datagramas de tamaño fijo (SOCK_SEQPACKET). No existe protocolo en internet que implemente este tipo de socket.

    Raw socket – Proporciona acceso a la capa de comunicaciones.

    Los sockets son orientados a datagramas pero sus características exactas dependen del interfaz proporcionado por el protocolo.

    La utilidad de conocer y poder realizar aplicaciones que utilicen sockets es indiscutible. Si deseas comunicar tu aplicación con otras aplicaciones en otras maquinas o incluso dentro de tu maquina mismo debes conocer a utilizar los sockets.