gpt4 book ai didi

Python Socket - 同时发送/接收消息

转载 作者:行者123 更新时间:2023-12-04 19:02:49 25 4
gpt4 key购买 nike

基本上我一直在使用套接字和线程开发一个简单的聊天室。在我的客户端中,我可以接收和发送消息,我的问题是在循环中一个在另一个之前,所以如果我发送消息,我只会在发送消息后接收数据。我希望它像任何其他聊天室一样工作,在我发送消息时可以收到消息,任何帮助都会有很大帮助。这是我的基本客户:

import socket
import sys

###########
HOST = '25.0.18.52'
PORT = 9999
###########

name = input("Enter your name: ")
s = socket.socket()
s.connect((HOST,PORT))

while 1:
message = input("Message: ")
s.send("{}: {}".format(name, message).encode('utf-8'))
data = s.recv(1024)
a = data.decode("utf-8")
print(a)

最佳答案

您应该保留 2 个线程:一个用于监听,另一个用于接收。在您的 while循环,您应该删除监听器部分,并将代码保留在不同的线程中。这样您就可以同时在控制台上接收和输入。

def recv():
while True:
data = s.recv(1024).decode()
if not data: sys.exit(0)
print data

Thread(target=recv).start()

关于Python Socket - 同时发送/接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33434007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com