【发布时间】:2016-03-10 19:33:38
【问题描述】:
我正在尝试使用 socket.send() 和 socket.recv() 函数发送多个字符串。
我正在构建一个客户端/服务器,并且“在一个完美的世界中”希望我的服务器在让我的客户端调用套接字时最多调用 socket.send() 函数 3 次(对于某个服务器命令) .recv() 调用 3 次。这似乎不起作用,客户端挂断等待另一个响应。
服务器:
clientsocket.send(dir)
clientsocket.send(dirS)
clientsocket.send(fileS)
客户
response1 = s.recv(1024)
if response1:
print "\nRecieved response: \n" , response1
response2 = s.recv(1024)
if response2:
print "\nRecieved response: \n" , response2
response3 = s.recv(1024)
if response3:
print "\nRecieved response: \n" , response3
我正在完成将所有字符串连接在一起然后在客户端中重新解析它们的繁琐任务,并且想知道是否有更有效的方法来做到这一点?
编辑: 我的 response1 输出给了我不寻常的结果。我第一次打印 response1 时,它会在 1 个字符串中打印所有 3 个响应(全部混合在一起)。我第二次调用它时,它自己给了我第一个字符串。以下对 recv 的调用现在出现故障/错误并显示第二个字符串,然后是第三个字符串。然后它开始显示其他命令,但好像它在队列中。
非常不寻常,但我可能会坚持在服务器中将字符串连接在一起,然后在客户端中解析它们
【问题讨论】:
标签: python string sockets send