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