Trabajo java y redes
LOS SOCKETS.
Los sockets son un sistema de comunicación entre procesos de diferentes máquinas de
una red. Más exactamente, un socket es un punto de comunicación por el cual un proceso puede
emitir o recibir información.
Los sockets no son más que puntos o mecanismos de comunicación entre
procesos que permiten que un proceso hable (emita o reciba información ) con otro
proceso incluso estando estos procesos en distintas máquinas. Esta característica de
interconectividad entre máquinas hace que el concepto de socket nos sirva de gran
utilidad. Esta interfaz de comunicaciones es una de las distribuciones de Berkeley al
sistema UNIX, implementándose las utilidades de interconectividad de este Sistema
Operativo (rlogin, telnet, ftp, ... ) usando sockets.
Un socket es al sistema de comunicación entre ordenadores lo que un buzón o un
teléfono es al sistema de comunicación entre personas: un punto de comunicación
entre dos agentes ( procesos o personas respectivamente ) por el cual se puede emitir
o recibir información. La forma de referenciar un socket por los procesos implicados esmediante un descriptor del mismo tipo que el utilizado para referenciar ficheros.
Debido a esta característica, se podrá realizar redirecciones de los archivos de E/S
estándar (descriptores 0,1 y 2) a los sockets y así combinar entre ellos aplicaciones de
la red. Todo nuevo proceso creado heredará, por tanto, los descriptores de sockets de
su padre.
La comunicación entreprocesos a través de sockets se basa en la filosofía
CLIENTE-SERVIDOR: un proceso en esta comunicación actuará de proceso
servidor creando un socket cuyo nombre conocerá el proceso cliente, el cual podrá
"hablar" con el proceso servidor a través de la conexión con dicho socket nombrado.
El proceso crea un socket sin nombre cuyo valor de vuelta es un descriptor sobre el
que se leeráo escribirá, permitiéndose una comunicación bidireccional, característica
propia de los sockets y que los diferencia de los pipes, o canales de comunicación
unidireccional entre procesos de una misma máquina. El mecanismo de comunicación
vía sockets tiene los siguientes pasos:
1º) El proceso servidor crea un socket con nombre y espera la
conexión.
2º) El proceso cliente crea un socket sin nombre.
3º) El proceso cliente realiza una petición de conexión al socket
Servidor.
4º) El cliente realiza la conexión a través de su socket mientras el
proceso servidor mantiene el socket servidor original con
nombre.
Es muy común en este tipo de comunicación lanzar un proceso hijo, una vezrealizada la conexión, que se ocupe del intercambio de información con el proceso
cliente mientras el proceso padre servidor sigue aceptando conexiones. Para eliminar
esta característica se cerrará el descriptor del socket servidor con nombre en cuanto
realice una conexión con un proceso socket cliente.
-> Todo socket viene definido por dos características fundamentales: - El tipo del socket, que indica la naturaleza del mismo, el tipo de comunicación
que puede generarse entre los sockets.
- El dominio del socket especifica el conjunto de sockets que pueden establecer
una comunicación con el mismo.
Vamos a estudiar con más detalle estos dos aspectos:
4.1.- Tipos de sockets.
Define las propiedades de las comunicaciones en las que seve envuelto un
socket, esto es, el tipo de comunicación que se puede dar entre cliente y servidor.
Estas pueden ser:
- Fiabilidad de transmisión.
- Mantenimiento del orden de los datos.
- No duplicación de los datos.
- El "Modo Conectado" en la comunicación.
- Envío de mensajes urgentes.
Los tipos disponibles son los siguientes: ...
Regístrate para leer el documento completo.