FinalProjectAndresGMoran/app/panel_derecho/chat.py

57 lines
2.1 KiB
Python

import socket
import threading
from tkinter import messagebox
class Chat:
def __init__(self, server='127.0.0.1' , port=3333): #192.168.120.106
self.server = server
self.port = port
self.client_socket = None
self.connected = False
self.mensajes_recibidos = []
def conectar_al_servidor(self):
"""Conectar al servidor de chat."""
try:
self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.client_socket.connect((self.server, self.port))
self.connected = True
print("Conectado al servidor de chat.")
self.escuchar_mensajes()
except Exception as e:
messagebox.showerror("ERROR", f"Error, no se pudo conectar al servidor: {e}")
self.connected = False
def enviar_mensaje(self, mensaje):
"""Enviar un mensaje al servidor."""
if not self.connected:
messagebox.showerror("ERROR", "No estas conectado al servidor")
try:
self.client_socket.send(mensaje.encode('utf-8'))
print("Mensaje Enviado")
except Exception as e:
messagebox.showerror("ERROR",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()