核心逻辑其实巨简单,就是
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
链路黑洞
|