-
Notifications
You must be signed in to change notification settings - Fork 0
/
servidor.py
37 lines (30 loc) · 965 Bytes
/
servidor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import socket
import threading
HOST='127.0.0.1'
PORT=55555
server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind((HOST,PORT))
server.listen()
salas = {}
def broadcast(sala,mensagem):
for i in salas[sala]:
if isinstance(mensagem, str):
mensagem = mensagem.encode()
i.send(mensagem)
def enviarMensagem(nome, sala , client):
while True:
mensagem = client.recv(1024)
mensagem = f'{nome}: {mensagem.decode()}\n'
broadcast(sala,mensagem)
while True:
cliente, addr =server.accept()
cliente.send(b'SALA')
sala = cliente.recv(1024).decode()
nome = cliente.recv(1024).decode()
if sala not in salas.keys():
salas[sala] = []
salas[sala].append(cliente)
print(f'{nome} se conectou na sala {sala} ! INFO {addr}')
broadcast(sala, f'{nome} : Entrou na sala !\n')
thread =threading.Thread(target=enviarMensagem,args=(nome , sala,cliente))
thread.start()