Universidad Tecnológica Nacional Facultad Regional Buenos Aires
-
Upload
maile-greene -
Category
Documents
-
view
48 -
download
3
description
Transcript of Universidad Tecnológica Nacional Facultad Regional Buenos Aires
![Page 1: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/1.jpg)
Universidad Tecnológica Nacional
Facultad Regional Buenos AiresIngeniería en Sistemas de
Información
SocketsArquitectura cliente-servidor
Sistemas Operativos
![Page 2: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/2.jpg)
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
![Page 3: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/3.jpg)
Sockets – Ejemplo
Send(“Hola Mundo”…);
Sistema Operativo
Componente de Red
Recv(variable…);
Sistema Operativo
Componente de Red
Ejemplo de comunicación de dos procesos
![Page 4: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/4.jpg)
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
……
……
……
……
![Page 5: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/5.jpg)
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!
![Page 6: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/6.jpg)
Inicio / Ejecutar... / cmd
# telnet www.google.com.ar 80
GET / HTTP/1.1
Host: www.google.com.ar
Sockets – Ejemplo
![Page 7: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/7.jpg)
Sockets – Send/Recv
Servidor Cliente
send(newSock, buffer); recv(cliSock, buffer);
Conexión Establecida!
recv(newSock, buffer); send(cliSock, buffer);
![Page 8: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/8.jpg)
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)
![Page 9: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/9.jpg)
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
![Page 10: Universidad Tecnológica Nacional Facultad Regional Buenos Aires](https://reader036.fdocuments.es/reader036/viewer/2022082517/568130e4550346895d96f9c8/html5/thumbnails/10.jpg)
Sockets – ProblemaUn solo proceso, funciones bloqueantes,
varios sockets simultáneos
Varios threads?
Varios procesos?
Sockets con select?
Polling?
No se puede?