[問題] socket連線逾時 setSoTimeout()

看板java作者 (Azure)時間14年前 (2011/06/08 00:17), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
我有一個關於連線逾時的問題想請教一下 今天我寫了一個多人連線的小遊戲 為了防止有人突然斷線導致遊戲無法進行 所以我在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

06/08 00:24, , 1F
替 client 加入"心跳"的訊號,server 時間內沒收到就當斷線
06/08 00:24, 1F
文章代碼(AID): #1Dxay7lU (java)