tp_socket
TRANSCRIPT
-
8/17/2019 tp_socket
1/3
TRABAJO PRÁCTICO DE PROCESAMIENTO DISTRIBUIDO
Introducción
Este trabajo esta orientado a la interacción de procesos mediante la utilización de socket.
Socket es básicamente una interfase que logra la comunicación de procesos a través de redes,
usando un conjunto de funciones y protocolos.El trabajo práctico esta compuesto por dos programas, uno denominado !"E#$E y el otro
SE%&"'(%. El primero consta de una estructura como se ve en la figura ).), la cual se
realiza utilizando un conjunto de funciones que brinda el socket.
*ara poder establecer la comunicación entre procesos es
necesario primeramente realizar una llamada al sistema
mediante la función socket, la cual produce que se cree una
nueva estructura de datos que retiene información
indispensable para la comunicación entre dic+os procesos y
que se aada dic+a estructura a la tabla de descriptores de
procesos.
"nicialmente, el socket se crea en el estado incone-o, quesignifica que el socket no está asociado con un determinado
destino. *ara asociarlo, se realiza una llamada al sistema,
onnect, que liga el socket a un destino permanente y lo pone
en el estado conectado.
na vez realizado estas operaciones, ya se puede a comenzar
al intercambio libre de datos entre los distintos procesos
conectados mediante las funciones /rite y %ead, +asta que un
determinado suceso de fin de comunicación o por producto de
una terminación anormal, determine el final de la
comunicación.
*ara terminar la utilización del socket es necesario implementar la función close.0ientras que el segundo programa consta de una estructura como se ve en la figura ).1, la
cual comienza con la llamada socket que cumple la misma función que en el programa
anterior.
Se continua con la función bind, que una vez que el socket se
+a creado, el servidor usa la llamada al sistema de lazo para
establecer un adress local para él. El lazo tiene la forma
siguiente2 bind 3socket, localaddr, addrlen4
!a llamada del sistema listen permite al servidor preparar el
socket para poder recibir cone-iones entrantes. En términos de
los protocolos subyacentes, listen pone el socket en un modo
del pasivo listo par aceptar cone-iones. uando el servidor
invoca a listen, también informa al sistema operativo que el
soft5are protocolar debe encolar demandas simultáneas
m6ltiples que llegan al socket.
na vez el socket se +a establecido, el servidor necesita
esperar por la cone-ión. *ara lograr esto se usa la llamada al
sistema accept. !a llamada para accept bloquea +asta la llegada
de demanda de cone-ión.
*ara aplicar estos conceptos proponemos el siguiente trabajo
práctico2
Página 1
Socket
onnect
/rite
%ead
close
7ig. ).)
!"E#$E
!isten
8ind
Socket
/rite
%ead
9ccept
close
7ig. ).1
SE%&"'(%
-
8/17/2019 tp_socket
2/3
Realizar un proceso que pueda transmitir por socket una entrad por teclado, y a su vezpueda recibir por un socket y hacer el display por pantalla de lo recibido. De donde lee yescribe (en lo que hace a los socket) lo toma de un archivo de configuración. De estamanera al lanzar dos instancias de este proceso, se debera permitirle a dos personas!chatear" por una red.omentarios2
Esta la llamamos usualmente :c+atear; y consiste en copiar el t funciones indispensables para el manejo de socket y la noción impl
-
8/17/2019 tp_socket
3/3
H
error3Iimposible preparar al socket para comunicacionI4L
return3)4L
M
longaddr Q sizeof3addrNserv4L
if 3 3nuevo Q accept3sock, 3struct sockaddr G4VaddrNserv, Vlongaddr44 QQ )4
H error3I#o se puede aceptar la comunicacionI4L
return3)4L
M
printf3Iomenzando la comunicacionKnI4L
5+ile3strcmp3msg,I7"#I44
H
valQread3nuevo, msg,09D4L
if3 val AQ F4
H
error3IE%%(% 'E !E$%9, no se puede recibir el mensaje correctamenteI4L
return3)4L M
msgOvalPQWKFWL
printf3I0sg recibido Js KnI,msg4L
if 3strcmp3msg,I7"#I4 QQ F4
breakL
printf3I0sg a enviar B7"# terminaB I4Lgets3msg4L
if 35rite3nuevo,msg,strlen3msg44 AQ F4
H
error3IE%%(% 'E ES%"$%9, #o se puede enviar el mensaje correctamenteI4L
return3)4L
M
M
close3nuevo4L
close3sock4L
printf3I7in de la transmisionKnI4L
return3)4L
M
Página 3