This commit is contained in:
Israel Alves de Oliveira Arruda 2026-05-08 20:06:21 -03:00
parent 138004eef8
commit f97bbf7244
4 changed files with 85 additions and 0 deletions

23
sockets/cliente_chat.py Normal file
View File

@ -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()

15
sockets/cliente_tcp.py Normal file
View File

@ -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}")

22
sockets/servidor_chat.py Normal file
View File

@ -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()

25
sockets/servidor_tcp.py Normal file
View File

@ -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())