Revista Digital Universitaria
10 de enero de 2006 Vol.7, No.1 ISSN: 1607 - 6079
Publicación mensual

 
     

RDU

 

 

 

 

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.

 

 

 
   

D.R. © Coordinación de Publicaciones Digitales
Dirección General de Servicios de Cómputo Académico-UNAM
Ciudad Universitaria, México D.F.
Se autoriza la reproducción total o parcial de los artículos aquí presentados,
siempre y cuando se cite la fuente completa y su dirección electrónica.