S09.s1 - Comunicacion de Procesos
S09.s1 - Comunicacion de Procesos
cliente servidor
respuesta
NÚCLEO NÚCLEO
RED
• Dominios de comunicación
• Tipos de sockets
• Direcciones de sockets
• Creación de un socket
• Asignación de direcciones
• Solicitud de conexión
• Preparar para aceptar conexiones
• Aceptar una conexión
• Transferencia de datos
Dominios de comunicación
• Stream (SOCK_STREAM)
– Orientado a conexión
– Fiable, se asegura el orden de entrega de mensajes
– No mantiene separación entre mensajes
– Si PF_INET se corresponde con el protocolo TCP
• Datagrama (SOCK_DGRAM)
– Sin conexión
– No fiable, no se asegura el orden en la entrega
– Mantiene la separación entre mensajes
– Si PF_INET se corresponde con el protocolo UDP
• Raw (SOCK_RAW)
– Permite el acceso a los protocolos internos como IP
Direcciones de sockets
• Realizada en el cliente
• int connect(int sd, struct sockaddr *dir, int long)
– sd: descriptor devuelto por socket
– dir: dirección del socket remoto
– long: longitud de la dirección
• Si el socket no tiene dirección asignada, se le asigna una
automáticamente
• Normalmente se usa con streams
Preparar para aceptar conexiones
socket()
Proceso cliente
bind()
socket() listen()
Abrir conexión
accept() Crear
connect()
thread
accept()
Petición
write() read()
Respuesta
read() write()
close() close()
Ejemplo (TCP)
Máquina A Máquina B
sumar(5,2)
cliente servidor
5+2
RED