首页 > 解决方案 > 如何连续接收数据?

问题描述

我在 Python 中创建了一个非常简单的 tcp 服务器。我连接,然后服务器等待客户端发送数据,然后客户端等待发回数据。当每个人都在等待时,他们无法发送数据。所以一方不能背靠背发送两条消息。我想让双方都听,并且仍然可以随时发送。我该怎么做?服务器代码:

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind((ipAddr, port))
print('Server starting on ' + ipAddr + ':' + str(port))
socket.listen(10)
print('Waiting for connection...')
c, addr = socket.accept()
print('Connection recieved from ' + str(addr))
while True:
    try:

        buf = c.recv(1024)
        if buf == 'stop':
            break
        elif len(buf) > 0:
            print(buf)
            response = input('>')
            c.sendall(str.encode(str(response)))
    except:
        print('Error')
        break

socket.close()

我希望能够从服务器向客户端发送背靠背消息,同时仍然监听来自客户端的响应

标签: pythonsockets

解决方案


而真:#receiving

client,add=server.accept()
data = client.recv(1024)
str = data.decode('ascii')
print("client is saying: ",str)

#sending

msg = input("server:")
a= msg.encode('ascii')
client.send(a)

推荐阅读