實驗一、 tcp連接在物理斷開后會有重試機制,只要在重試超時內(nèi)物理恢復(fù)后連接照樣正常工作。
(1)在鏈接正常的情況下,拔掉pad與電腦的網(wǎng)線,點擊pad上的按鈕,則電腦服務(wù)器端沒有變化;
(2)停幾秒,插上pad上的網(wǎng)線,再點擊pad上的按鈕,主機server端能繼續(xù)顯示發(fā)送到命令。
實驗2. 設(shè)置超時,只對服務(wù)器端有效,客戶端并不能檢測到超時。
(1)當(dāng)C/S兩端都設(shè)置超時時,客戶端不能偵測到超時,死在那里;
(2)一段時間后,Server端掛掉,server端設(shè)置超時起作用。
問題解決思路:設(shè)計一個結(jié)構(gòu)體用來保存Socket和最近一次受到數(shù)據(jù)的時間
同時設(shè)一個計時器如果當(dāng)前的時間和結(jié)構(gòu)體中保存的時間差
大于一定值,則認(rèn)為已經(jīng)斷線,當(dāng)然這適合于數(shù)據(jù)發(fā)送頻繁的
通信。
可以采用