python - 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!")
解决方案
推荐阅读
- javascript - 如何在一个 npm 包中公开多个文件?
- javascript - 单击另一个组件即可更改反应组件的状态
- c# - DocuSign Rest API C# 代理
- rust - 如何将网站的内容下载到字符串中?
- python - 在python中通过某个值索引拼接字符串列表
- java - 查找 ArrayList 中所有值的长度
- python - 如何在 django 中注销用户(没有请求)
- python - Confluent-Kafka:Avro 序列化与 Python 消费者中的模式处理的混淆
- perl - Perl 使用空间深度解析配置文件的上下文
- python - “ImportError:没有名为请求的模块;” 在终端中工作,而不是在 VisualStudio 中