我想使用ZeroMQ rep/req并且无法弄清楚如何处理服务器端错误。看看代码here:ZeroMQ REQ/REP服务器错误处理
socket.bind("tcp://*:%s" % port)
while True:
# Wait for next request from client
message = socket.recv()
print "Received request: ", message
time.sleep (1)
socket.send("World from %s" % port)
我的问题是,如果客户端调用socket.send(),然后挂起或崩溃会发生什么。服务器是不是会永远卡在socket.send()或socket.recv()上?
请注意,它不是TCP套接字的问题。使用TCP套接字,我可以简单地断开连接。使用ZMQ,连接隐式管理,我不知道是否有可能打破“会话”或“连接”并重新开始。
在服务器端,如果我使用socket.close(),是否关闭与客户端实例对应的会话,还是关闭了每个会话,还是关闭了侦听套接字? –
取决于套接字类,REQ/REP与PUB/SUB等有不同的行为。 –
我只对REP套接字感兴趣。 –