核心逻辑其实巨简单,就是
while true: try socket = serverSocket.accept xxxx(socket) ...... catch ......
这样的。。然后程序跑个几小时基本问题,然而有时更久后在有新连接进来以后 accept 居然会报 SocketClosedException 出现也没什么规律 不过有个三四次了 确认程序没有任何其他地方 close 这个 而且真关了的 ServerSocket 不是应该调用 accept 时立即爆 Exception 么 这个居然是继续阻塞着每来个新连接报一次?!
![]() | 1 wizarot 2016-08-26 18:55:01 +08:00 你试试增加个心跳信号来维持看看? 可能是超时了. |
2 ChinaTelecom OP @wizarot accept 的超时我还特意设成 0 了...就是无限 |
![]() | 3 Comdex 2016-08-26 19:51:21 +08:00 是不是 clientSocket 关闭了.... |
4 chareice 2016-08-26 21:26:35 +08:00 心跳包,应用层的心跳包。 |
5 owt5008137 2016-08-26 21:42:55 +08:00 via Android 倒是贴一下 Exception 的内容啊。看看 Message 什么的,能有调用栈更好 |
![]() | 6 leaves615 2016-08-27 00:13:21 +08:00 链路黑洞 |