Python - проблема ввода в клиенте чата (многопоточность) - PullRequest
0 голосов
/ 17 ноября 2018

Я создаю многопоточный клиент чата на 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!")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...