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