作者a517981 (Azure)
看板java
标题[问题] socket连线逾时 setSoTimeout()
时间Wed Jun 8 00:17:08 2011
我有一个关於连线逾时的问题想请教一下
今天我写了一个多人连线的小游戏
为了防止有人突然断线导致游戏无法进行
所以我在socket设定了 setSoTimeout(5000)
假如超过五秒钟没回应表示可能当机
而五秒钟一到也如预期的返回了一个java.net.SocketTimeoutException的例外
也中断了玩家的执行绪
我希望若有人超过五秒钟没回应
则Server要通知其他玩家有人断线
但现在问题是
我没办法捕捉java.net.SocketTimeoutException抛出的时间点
我有试过
try {
mySocket.setSoTimeout(5000);
}catch(SocketTimeoutException e){
System.out.println("连线逾时");
}
来捕捉SocketTimeoutException
但一直抓不到
请问一下各位前辈我这样的写法有错误嘛?
请教一下正确的SocketTimeoutException要怎麽写呢?
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.69.140
1F:→ qrtt1:替 client 加入"心跳"的讯号,server 时间内没收到就当断线 06/08 00:24