aula de thread

This commit is contained in:
Fernando Luiz de Lima 2026-04-17 21:46:48 -03:00
parent 401c336ba6
commit e0ccfdf7d8
5 changed files with 97 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_mensagem = scrolledtext.ScrolledText(janela)
area_mensagem.pack()
area_mensagem.config(state="disabled")
janela.mainloop()

View File

@ -0,0 +1,12 @@
# mmodelo de importacao diferente. nao precisa mais
#usar a palavra socket (modulo) antes do recusos
from socket import*
cliente = socket(AF_INET, SOCK_STREAM)
# abrir conexao
cliente.connect(("10.209.1.45", 3000))
cliente.send("Ola, servidor! aqui é o Fernando".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, enderco_cliente = servidor.accept()
clientes.append(cliente)
thread = threading.Thread(target=ouvir_cliente, args=[cliente,])
thread.start()

View File

@ -0,0 +1,21 @@
# blibioteca par autilizacao de sockets
import socket
#criar um objeto socket com AF_(IPV4) - COCKETSTREAM(TCP) DGRAM (UDP)
servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# estabelecer vinculo com endereco e uma porta
servidor.bind(("127.0.0.1", 3000))
#comeca a ouvi tentativas de conexao
servidor.listen()
# aceita conexao recebendo o objeto socket de conexao e o endereco de que conectou
conexao, enederco = servidor.accept()
# 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
conexao.send("ok! mensagem recebida com sucesso".encode())

19
thread/exemplo1.py Normal file
View File

@ -0,0 +1,19 @@
import threading
import time
# Função que será executada pela thread
def executar(nome_thread, n_iteracoes):
for i in range(n_iteracoes):
print(f"nome da thread: {nome_thread}")
time.sleep(2) #Parar por 2s
t1 = threading.Thread(target=executar,args=["thread1",15,])
t2 = threading.Thread(target=executar,args=["thread2",10,])
t1.start()
t2.start()
t1.join
t2.join
print("final da thread principal")