Я начал изучать программирование сокетов в Python 3 , и я пытаюсь создать сервер чата TCP, который может поддерживать несколько пользователей, но он не работает, потому что сервер не отправляет сообщение всем пользователям, этоотправляет сообщение обратно только тому, кто отправил сообщение.
Это код моего сервера (извините, что я нуб):
import socket
from _thread import *
sk = socket.socket()
sk.bind(('', 3000))
sk.listen(5)
def client(conn):
while True:
data = conn.recv(1024)
if not data:
break
mess = data.decode('utf-8')
print(mess)
conn.sendall(data)
if __name__ == '__main__':
print("server started")
while True:
conn, id = sk.accept()
print("{} conected".format(id))
start_new_thread(client, (conn,))
и это мой клиент:
import socket
import threading
sk = socket.socket()
target_ip = input("ip : ")
port = int(input("port: "))
sk.connect((target_ip, port))
def send():
mess = input()
while mess != 'EXIT':
mess = str.encode(mess)
sk.send(mess)
mess = input()
def listen():
while True:
data = sk.recv(1024)
mess = data.decode('utf-8')
if mess == 'zalinga':
quit()
else:
print(mess)
if __name__ == '__main__':
t1 = threading.Thread(target = send)
t2 = threading.Thread(target = listen)
t1.start()
t2.start()
Я не знаю, в чем проблема, но я не получаю никаких ошибок.