【发布时间】:2020-02-15 15:25:28
【问题描述】:
我将 Scala 与 java.net.Socket 和 java.net.ServerSocket 一起使用。
我想检测与客户端的套接字连接何时断开/超时。
我已经像这样实现了自己的检测,它有效:
var break = false
var startTime = System.currentTimeMillis()
while(!break){
if(inputstream.ready()){
//...parse input
startTime = System.currentTimeMillis()
}else if(System.currentTimeMillis() - startTime >= 5000){
break = true
}
}
socket.close()
所以我的实现会在 5000 毫秒内未从客户端收到消息时关闭套接字。
但我想知道库中是否有一些东西可以用来检测超时。
如果客户端关闭他们的程序或他们的 Internet 连接终止等,网络层、传输层或其他方面是否有某些东西,我的服务器可以通过库立即知道(java .net.Socket)?
是立即抛出异常还是有一些超时检测功能?
【问题讨论】: