Práctica de sistemas
distribuidos:
Comunicación
mediante Sockets
en Python en un
Entorno de Sistemas
Distribuidos
Autor:
César Eduardo Arenas Sánchez
Materia: Cómputo de Alto Desempeño
Profesor: Esaú Escobar Juarez
Modificando el código proporcionado
Por parte del servidor:
Primero que nada, modifique el host, que según internet decía es para escuchar en
todas las interfaces del host, o mejor dicho que mi aplicación está con puertos
abiertos.
Después inicialice un while infinito suponiendo que estamos haciendo un chat de
un indefinido número de mensajes teniendo esto en cuenta también añadí un try
tomando en cuenta los errores que me pasaron en otros scripts de la materia de
aplicaciones para la ciencia de datos, donde los manejamos mucho, después
proseguí con el código para recibir del cliente y coloque un if en caso de no recibir
datos del recv ya que me di cuenta que cuando el cliente termina el proceso, el
servidor sigue esperando datos aunque ya no los reciba, y pues obviamente si ya
no recibe datos matará al while; despues inicialice la variable respuesta para enviar
los mensajes del servidor y ocupe el método de send, después para concluir en
caso de conexión fallida cerré con un except, el IDE que uso me sugirió
‘ConnectionResetError’, y pues este except también mata al while.
Seguido de eso, termina igual que el código normal cerrando las conexiones y eso.
Por el lado del Cliente:
En esta parte no cambia mucho, ya que primero mostraré la conexión ‘local’ pero
después solo cambia el nombre del host a la ip de mi servidor
Después de eso, se sigue la estructura del server donde primero se pregunta el
mensaje, y un if que pregunta si pusimos ‘salir’ pues para obviamente salir del chat,
y pues teniendo nuestro mensaje en caso contrario, lo enviamos al servidor y
recibimos la respuesta que mande el servidor, cambiando con respecto al otro,
dado que no será nuestro mismo mensaje, e imprimimos la respuesta, y para
finalizar solo cerramos el socket del cliente.
Programa Corriendo en Local
Programa Corriendo en Red Local
En esta parte, tuve que instalar una máquina virtual Lubuntu dado que no terminé
la práctica con mis compañeros 🙁 , y pues deduje que usan diferentes ip porque
recordaba un tutorial de ‘Hackers’ donde hacían pruebas con una.
Usé ip a para ver la ip de mi máquina local que será el servidor, aunque también
me lo proporciona el ‘fastfetch’. Teniendo el IP lo metí en el código del Cliente para
conectar.
Conclusión
Si corrió profe, me gustó la práctica.