- 论坛徽章:
- 0
|
有2台server(同级别),一台client。
client首先连接server1的9090端口读取消息,若某次连接server1连续5次出错,那么改为连接server2的9090端口,此时一个辅助进程将启动去检测server1是否恢复(检测方法就是去连接server1的9090端口),若恢复,那么给client1发信号,让其重新连接server1去。
当server1的9090端口被down掉的时候,client能够正常去尝试server2,然后,我手动把server1的9090端口up的时候,客户端报了个异常(client是python写的),异常是
106: Transport endpoint is already connected.
原因可能是,由于对方异常关闭端口,client没有正常关闭socket的本地段,那么当再次连接对端的时候,系统会报已经连接。
不知道如何在这个情况下避免这个异常。
接着往下,我从恢复了的server1的9090端口取数据的时候,我strace了一下,看到卡在了这里不动了,不知道如何解决,请各位高手指教。
19:42:15.085917 send(6, "\200\1\0\1\0\0\0\3sub\0\0\0\0\v\0\1\0\0\0\7scatter\10\0\2"..., 44, 0) = 44
19:42:15.086022 recv(6, |
|