對端的異常狀況
可以通過read呼叫,對eof的判斷,隨時防範對方程式崩潰
但是 不是每種情況都可以通過讀操作來感知異常 比如伺服器完全崩潰,或者網路中斷的情況下,此時如果阻塞套接字,那麼會一直阻塞在read等呼叫上,沒有辦法感知套接字異常
其實有幾種辦法來解決這個問題
第乙個辦法是給套接字的read操作設定超時,如果超過了一段時間就認為鏈結已經不存在,
struct timeval tv;
tv.tv_sec=5;
tv.tv_usec=0;
setsockopt(connfd,sql_sockert,so_recvtimeo,(const char *) &tv,sizeof(tv));
設定了套接字的讀操作超時,超時事件在5秒
第二個方法
新增對鏈結是否正常的檢測。如果鏈結不正常,需要從當前read阻塞中返回並處理
還有乙個辦法 通過多路復用自帶的超時能力,完成對套接字i/o檢查
陳碩《網路程式設計實戰》目錄
00.前言 01.網路程式設計概要.mkv 02.乙個tcp的簡單實驗.mkv 03.課程內容大綱.mkv 04.回顧基礎的sockets api.mkv 05.ttcp 概覽.mkv 06.使用ttcp進行網路傳輸效能測試.mkv 07.阻塞io下的ttcp實驗.mkv 8.tcp自連線.mkv ...
檢查替換後的Word是否有效
原題目是 我們被賦予該字串 abc 是有效的,從任何有效的字串v,我們可以將v分成兩部分 x和y x連線y 等於v,然後,x abc y也是有效的。例如s abc 有效字串為 aabcbc abcabc 無效的字串為 abccba bac cabcba 核心演算法 public boolean is...
檢查替換後的詞是否有效
給定有效字串 abc 對於任何有效的字串 v,我們可以將 v 分成兩個部分 x 和 y,使得 x y x 與 y 連線 等於 v。x 或 y 可以為空。那麼,x abc y 也同樣是有效的。例如,如果 s abc 則有效字串的示例是 abc aabcbc abcabc abcabcababcc 無效...