Los
sockets
Una
forma de conseguir que dos programas se
transmitan datos, basada en el protocolo
TCP/IP, es la programación de sockets.
Un socket es un "canal de comunicación"
entre dos programas que corren sobre ordenadores
distintos o incluso en el mismo ordenador.
Desde
el punto de vista de programación,
un socket es un "fichero" que
se abre de una manera especial. Una vez
abierto se pueden escribir y leer datos
de él.
Existen
básicamente dos tipos de "canales
de comunicación" o sockets,
los orientados a conexión y los no
orientados a conexión.
En
el primer caso ambos programas deben conectarse
entre ellos con un socket y hasta que no
esté establecida correctamente la
conexión, ninguno de los dos puede
transmitir datos. Esta es la parte TCP del
protocolo TCP/IP, y garantiza que todos
los datos van a llegar de un programa al
otro correctamente. Se utiliza cuando la
información a transmitir es importante,
no se puede perder ningún dato y
no importa que los programas se queden "bloqueados"
esperando o transmitiendo datos. Si uno
de los programas está atareado en
otra cosa y no atiende la comunicación,
el otro quedará bloqueado hasta que
el primero lea o escriba los datos.
En
el segundo caso, no es necesario que los
programas se conecten. Cualquiera de ellos
puede transmitir datos en cualquier momento,
independientemente de que el otro programa
esté "escuchando" o no.
Es el llamado protocolo UDP, y garantiza
que los datos que lleguen son correctos,
pero no garantiza que lleguen todos. Se
utiliza cuando es muy importante que el
programa no se quede bloqueado y no importa
que se pierdan datos.