首页 > 解决方案 > python-聊天客户端中的输入问题(线程)

问题描述

我正在用 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!")

标签: pythonmultithreadingnetworking

解决方案


推荐阅读