聊天客户端中的python输入问题(线程)

时间:2018-11-17 11:13:28

标签: python multithreading networking

我正在用python构建多线程聊天客户端。当客户端首次连接到服务器时,服务器会向客户端发送欢迎消息。但是,此消息大多与输入部分搞混了。如果客户端部分的输入提示是“ Me:”,则输出将变成“ Me:您的昵称是Monique Williams”。(第二部分由服务器发送,服务器为连接的客户端指定一个随机的假名)。

如何防止这种情况?我知道这是因为多线程,所以我尝试使用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!")

0 个答案:

没有答案