From 58d4d0b6e5bc5caca445a7689201e15de63d9221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Gon=C3=A7alves=20Costa?= <20251144030032@ifrn.local> Date: Fri, 8 May 2026 21:32:11 -0300 Subject: [PATCH] Commit chat 'finalizado' --- sockets/cliente_chat.py | 34 +++++++++++++++++++++++++++------- sockets/servidor_chat.py | 19 +++++++++++-------- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/sockets/cliente_chat.py b/sockets/cliente_chat.py index 486c13e..a5b1c31 100644 --- a/sockets/cliente_chat.py +++ b/sockets/cliente_chat.py @@ -1,24 +1,44 @@ import tkinter as tk from tkinter import scrolledtext +import socket +import threading +def ouvir_servidor(socket_servidor): + while True: + mensagem = socket_servidor.recv(8000) + area_mensagens.config(state="normal") + area_mensagens.insert(tk.END, mensagem.decode() + "\n") + area_mensagens.config(state="disabled") + +socket_servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +socket_servidor.connect(("10.209.1.45",5000)) + +thread = threading.Thread(target=ouvir_servidor, args=[socket_servidor,]) +thread.start() janela = tk.Tk() janela.title("Chat do IFRN") -rotulo_mensagem = tk.label(janela, text="Digite sua mensagem") +rotulo_mensagem = tk.Label(janela, text="Digite sua mensagem") rotulo_mensagem.pack() -entrada_mensagem = tk.Entry(janela, width=100) -entrada_mensagem.pack +entrada_mensagem = tk.Entry(janela, width=80) +entrada_mensagem.pack() def clicar(): - print("Fui clicado") + mensagem = entrada_mensagem.get() + print(mensagem) + socket_servidor.send(mensagem.encode()) + entrada_mensagem.delete(0, tk.END) + area_mensagens.config(state="normal") + area_mensagens.insert(tk.END, mensagem + "\n") + area_mensagens.config(state="disabled") -botao = tk.Button(janela,text="Enviar", command=clicar) +botao = tk.Button(janela, text="Enviar", command=clicar) botao.pack() -area_mensagens = scrolledtext.ScrolledText(janela,) -area_mensagens.pack +area_mensagens = scrolledtext.ScrolledText(janela) +area_mensagens.pack() area_mensagens.config(state="disabled") janela.mainloop() \ No newline at end of file diff --git a/sockets/servidor_chat.py b/sockets/servidor_chat.py index 3910c1b..fdde5b6 100644 --- a/sockets/servidor_chat.py +++ b/sockets/servidor_chat.py @@ -2,7 +2,7 @@ import socket import threading servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -servidor.bind(("0.0.0.0", 5000)) +servidor.bind(("0.0.0.0",5000)) servidor.listen() print("Servidor inicializado!!!") @@ -10,15 +10,18 @@ clientes = [] def ouvir_cliente(cliente): while True: - mensagem = cliente.recv(1024) - for socket_cliente in clientes: - if socket_cliente != cliente: - socket_cliente.send(mensagem) + try: + mensagem = cliente.recv(8000) + for socket_cliente in clientes: + if socket_cliente != cliente: + socket_cliente.send(mensagem) + except Exception as e: + print(f"Ocorreu um erro inesperado: {e}") + return while True: cliente, endereco_cliente = servidor.accept() + print("Cliente conectado:", endereco_cliente) clientes.append(cliente) thread = threading.Thread(target=ouvir_cliente, args=[cliente,]) - thread.start() - - \ No newline at end of file + thread.start() \ No newline at end of file