aula de thread
This commit is contained in:
parent
401c336ba6
commit
e0ccfdf7d8
|
|
@ -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()
|
||||||
|
|
@ -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()}")
|
||||||
|
|
@ -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()
|
||||||
|
|
@ -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())
|
||||||
|
|
@ -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")
|
||||||
Loading…
Reference in New Issue