[問題] Socket keep-alive 連線

看板java作者 (單身漢)時間10年前 (2015/07/08 10:31), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/2 (看更多)
請問一下, 假設Client 與 Server保持Socket連線, Client這邊直接把網路線拔掉, 此時Server應該是無法收到Client斷線的訊息, 因為沒有完成4-way Handshake程序, 因此Server要如何判斷Client已經斷線呢? 我在網路上查詢發現蠻多人使用 sendUrgentData(0xFF); (大陸稱心跳包) 透過定時發送封包的方式, 來確認Client是否已經斷線, 不知道大家也是用這個方式嗎? 還是有其他方式呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.144.199 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1436322666.A.859.html

07/08 10:38, , 1F
改 socket timeout
07/08 10:38, 1F

07/08 10:39, , 2F
4 way handshake ?
07/08 10:39, 2F

07/08 10:49, , 3F
四向交握 (4 way handshake)
07/08 10:49, 3F

07/08 19:33, , 4F
TCP connection 是 3 way handshake (SYN,SYN-ACK,ACK)
07/08 19:33, 4F

07/08 22:36, , 5F
斷線是 4 way handshake
07/08 22:36, 5F

07/08 23:38, , 6F
抱歉沒仔細看內文就回 XD 斷線的確是 4 way handshake
07/08 23:38, 6F
文章代碼(AID): #1Ld8jgXP (java)
討論串 (同標題文章)
文章代碼(AID): #1Ld8jgXP (java)