我想使用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套接字感興趣。 –