universidad tecnológica nacional facultad regional buenos aires
DESCRIPTION
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información. Sistemas Operativos. Sockets Arquitectura cliente-servidor. Sockets – Introducción. Socket (enchufe) Canal de comunicación entre procesos no emparentados. Socket. - PowerPoint PPT PresentationTRANSCRIPT
Universidad Tecnológica Nacional
Facultad Regional Buenos AiresIngeniería en Sistemas de
Información
SocketsArquitectura cliente-servidor
Sistemas Operativos
Sockets – Introducción
Socket (enchufe) Canal de comunicación entre procesos no emparentados
El proceso padre y el hijo comparten las variables y los descriptores. Estos
eventualmente pueden ser usados para comunicarse
Dos procesos sin relación de parentesco no pueden compartir
información, mucho menos si estos están en computadoras diferentes.
Socket
Sockets – Ejemplo
Send(“Hola Mundo”…);
Sistema Operativo
Componente de Red
Recv(variable…);
Sistema Operativo
Componente de Red
Ejemplo de comunicación de dos procesos
Sockets – Estados
1) Crear socket
2) Asociar a una IP y puerto
3) Configurar el estado de escucha y esperar conexiones
Servidor
Cliente
4) Crear socket
5) Conectar a IP y puerto
6) Aceptar conexión y asignar un descriptor único para esa conexión
……
……
……
……
Sockets – Comandos
1) Int iSock = socket(…);
2) bind(iSock, {ip/puerto});
3) listen(iSock);Servidor
Cliente
4) Int cliSock = socket(…);
5) connect(cliSock, {ip/puerto});
6) Int newSock = accept(iSock);
Conexión Establecida!
Inicio / Ejecutar... / cmd
# telnet www.google.com.ar 80
GET / HTTP/1.1
Host: www.google.com.ar
Sockets – Ejemplo
Sockets – Send/Recv
Servidor Cliente
send(newSock, buffer); recv(cliSock, buffer);
Conexión Establecida!
recv(newSock, buffer); send(cliSock, buffer);
Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 0.0.0.0:60393 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:111 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTENtcp 0 0 127.0.0.1:25 0.0.0.0:* LISTENtcp 0 0 192.168.2.105:22 192.168.2.101:57804 ESTABLISHEDtcp 0 132 192.168.2.105:22 192.168.2.88:3774 ESTABLISHEDtcp 0 0 192.168.2.105:22 192.168.2.101:47939 ESTABLISHEDtcp6 0 0 :::22 :::* LISTENudp 0 0 0.0.0.0:38659 0.0.0.0:*udp 0 0 0.0.0.0:701 0.0.0.0:*udp 0 0 0.0.0.0:68 0.0.0.0:*udp 0 0 0.0.0.0:111 0.0.0.0:*
Sockets – netstat# netstat -na
Linux :: netstat –nap (incluye el proceso)
Sockets – Problema
connect();
connect();send();
sock1= accept(iSock);recv(sock1);sock2= accept(iSock);recv(sock2);
connect();
Servidor
??
Un solo proceso, funciones bloqueantes, varios sockets simultáneos
Sockets – ProblemaUn solo proceso, funciones bloqueantes,
varios sockets simultáneos
Varios threads?
Varios procesos?
Sockets con select?
Polling?
No se puede?