Obetener mensajes en el servidor y mostrarlos en la interfaz

This commit is contained in:
Andrés Moran 2025-02-02 00:04:35 +01:00
parent b556eda0cf
commit 51667fb0e8
1 changed files with 24 additions and 1 deletions

View File

@ -1,7 +1,6 @@
import socket import socket
import threading import threading
class Chat: class Chat:
def __init__(self, server='127.0.0.1', port=3333): def __init__(self, server='127.0.0.1', port=3333):
self.server = server self.server = server
@ -17,6 +16,7 @@ class Chat:
self.client_socket.connect((self.server, self.port)) self.client_socket.connect((self.server, self.port))
self.connected = True self.connected = True
print("Conectado al servidor de chat.") print("Conectado al servidor de chat.")
self.escuchar_mensajes()
except Exception as e: except Exception as e:
print(f"Error, no se pudo conectar al servidor: {e}") print(f"Error, no se pudo conectar al servidor: {e}")
self.connected = False self.connected = False
@ -30,3 +30,26 @@ class Chat:
print("Mensaje Enviado") print("Mensaje Enviado")
except Exception as e: except Exception as e:
raise ConnectionError(f"Error al enviar el mensaje: {e}") raise ConnectionError(f"Error al enviar el mensaje: {e}")
def escuchar_mensajes(self):
"""Escucha mensajes entrantes desde el servidor."""
def recibir():
while self.connected:
try:
mensaje = self.client_socket.recv(1024)
if mensaje:
mensaje_decodificado = mensaje.decode('utf-8')
self.mensajes_recibidos.append(mensaje_decodificado)
print(f"Mensaje recibido: {mensaje_decodificado}")
else:
print("El servidor cerró la conexión.")
self.connected = False
break
except Exception as e:
print(f"Error al recibir mensajes: {e}")
self.connected = False
break
print("Iniciando escucha de mensajes...")
thread = threading.Thread(target=recibir, daemon=True)
thread.start()