Posted on 2009-06-15 18:42
Prayer 閱讀(1039)
評論(0) 編輯 收藏 引用 所屬分類:
SOCKET
網絡連接斷開可以分為兩種:
1.正常斷開.
這類問題可以處理.
2.非正常斷開.
a. 客戶端主機突然停電、被損壞、網線被剪斷,這是一類;
b. 客戶端進程被結束任務程序強行中止, 此時物理連接是完好的.
對于非正常斷開, TCP/IP 協議不能檢測, 這是 TCP/IP 的設計問題, 只能通過發送數據包來檢測.
如 HeartBeat 包. 只要包不能正常發送出去, 不管是基于上述何種原因, 都可以認為網絡已經斷開.
在你的程序中加入兩對 Socket ,其中一對用來發送 HeartBeat 包.
出錯則認為網絡已經斷開.
因為對于非正常斷開, 兩對 SOCKET 必然同時斷開.