如何连续接收数据?

时间:2019-01-03 04:06:17

标签: python sockets

我用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()

我希望能够从服务器向客户端发送回退消息,同时仍在侦听客户端的响应

1 个答案:

答案 0 :(得分:0)

为True时:     #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)