Python套接字-在同一时间发送/接收消息

2024-05-18 19:14:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)

Tags: nameimporthost消息messageinputdata客户机
1条回答
网友
1楼 · 发布于 2024-05-18 19:14:03

你应该留两条线。一个用来听,另一个用来接受。在while循环中,应该删除侦听器部分,并将代码保存在不同的线程中。这样,您将接收并在控制台上以相同的类型键入。

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

Thread(target=recv).start()

相关问题 更多 >

    热门问题