Я создаю многопоточный клиент чата на python. Когда клиент впервые подключается к серверу, сервер отправляет клиенту приветственное сообщение. Однако это сообщение в основном перепутано с входной частью. Если запрос на ввод в клиентской части - «Я:», вывод будет выглядеть как «Я: Ваш никнейм - Моник Уильямс» (вторая часть отправляется сервером, который назначает случайное поддельное имя подключенному клиенту).
Как я могу предотвратить это? Я знаю, что это из-за многопоточности, и я попытался использовать time.sleep (), но это не сработало.
import socket
import sys
from threading import Thread
import os
import time
HOST="192.168.1.33"
PORT=5000
try:
os.system("color A")
s = socket.socket()
s.connect((HOST,PORT))
def recv():
while True:
data = s.recv(1024)
if not data: sys.exit(0)
print(data.decode())
t1=Thread(target=recv)
t1.start()
while 1:
message = input("Me:")
s.send(message.encode('utf-8'))
except ConnectionRefusedError:
print("Server Error!")