From f97bbf724414c44564599d5eb8787f0297721dcb Mon Sep 17 00:00:00 2001 From: Israel Date: Fri, 8 May 2026 20:06:21 -0300 Subject: [PATCH] Mudando --- sockets/cliente_chat.py | 23 +++++++++++++++++++++++ sockets/cliente_tcp.py | 15 +++++++++++++++ sockets/servidor_chat.py | 22 ++++++++++++++++++++++ sockets/servidor_tcp.py | 25 +++++++++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 sockets/cliente_chat.py create mode 100644 sockets/cliente_tcp.py create mode 100644 sockets/servidor_chat.py create mode 100644 sockets/servidor_tcp.py diff --git a/sockets/cliente_chat.py b/sockets/cliente_chat.py new file mode 100644 index 0000000..65ceaf6 --- /dev/null +++ b/sockets/cliente_chat.py @@ -0,0 +1,23 @@ +import tkinter as tk +from tkinter import scrolledtext + +janela = tk.Tk() +janela.title("Chat do IFRN") + +rotulo_mensagem = tk.Label(janela, text="Digite sua mensagem") +rotulo_mensagem.pack() + +entrada_mensagem = tk.Entry(janela, width=80) +entrada_mensagem.pack() + +def clicar(): + print("Fui clicado") + +botao = tk.Button(janela, text="Enviar", command=clicar) +botao.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/cliente_tcp.py b/sockets/cliente_tcp.py new file mode 100644 index 0000000..bbf7d36 --- /dev/null +++ b/sockets/cliente_tcp.py @@ -0,0 +1,15 @@ +#Modelo de importação diferente. Não precisará mais +#usar a palavra socket (modulo) antes dos recursos +from socket import * + +#Criar objeto socket +cliente = socket(AF_INET, SOCK_STREAM) + +#Abrir conexão +cliente.connect(("10.209.1.45",3000)) + +#Enviar mensagem. +cliente.send("Olá, servidor! Israel".encode()) + +mensagem = cliente.recv(1024) +print(f"Mensagem recebida {mensagem.decode}") \ No newline at end of file diff --git a/sockets/servidor_chat.py b/sockets/servidor_chat.py new file mode 100644 index 0000000..dfca560 --- /dev/null +++ b/sockets/servidor_chat.py @@ -0,0 +1,22 @@ +import socket +import threading + +servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +servidor.bind(("0.0.0.0",5000)) +servidor.listen() +print("Servidor inicializado!!!") + +clientes = [] + +def ouvir_cliente(cliente): + while True: + mensagem = cliente.recv(1024) + for socket_cliente in clientes: + if socket_cliente != cliente: + socket_cliente.send(mensagem) + +while True: + cliente, endereco_cliente = servidor.accept() + clientes.append(cliente) + thread = threading.Thread(target=ouvir_cliente, args=[cliente,]) + thread.start() \ No newline at end of file diff --git a/sockets/servidor_tcp.py b/sockets/servidor_tcp.py new file mode 100644 index 0000000..8569e7c --- /dev/null +++ b/sockets/servidor_tcp.py @@ -0,0 +1,25 @@ +# Biblioteca padrão para utilização de sockets +import socket + +# Criar um objeto socket com AF_INET (IPV4) e SOCK_STREAM (TCP) +servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + +# Estabelecer vinculo com um endereço e uma porta +servidor.bind(("0.0.0.0",3000)) + +print("Servidor Inicializado.....") + +# Começa a ouvir tentativas de conexão +servidor.listen() + +# Aceitar conexão recebendo o objeto socket da conexão e +# o endereço de quem se conectou +conexao, endereco = servidor.accept() +print(f"Endereco do cliente: {endereco}") + +# Recebendo mensagem do cliente. Tenho que converter bytes para string (decode) +mensagem = conexao.recv(1024).decode() +print(f"Mensagem recebida: {mensagem}") + +# Enviar mensagem. Precisa ser em bytes (decode) +conexao.send("Ok! Mensagem recebida com sucesso".encode()) \ No newline at end of file