天堂888-欧美黄色小说-熟睡侵犯の奶水授乳在线-初尝情欲h名器av-亚洲天堂免费视频-日韩五十路-免费在线国产-国产又大又黄又粗-久草导航-色播导航-亚洲免费资源-熟女一区二区三区视频-亚洲美女视频在线-亚洲成人福利视频-婷婷精品在线-亚洲综合p-中文字幕 日本-亚洲骚片-亚洲自拍偷拍网-国产农村妇女精品一区二区-午夜中出-久久精品国产精品亚洲毛片-91精品毛片-99爱视频在线-狠狠操亚洲-美女让人操-里番本子纯肉侵犯肉全彩无码-999偷拍

網絡編程中的超時檢測詳細過程說明[1]

互聯網技術 責任編輯:aa3296602 2011-01-10

摘要:我們在網絡編程中常見的一種做法是:創建好套接字后以阻塞的方式讀寫,如果沒有數據可讀的話,程序會一直等待。事實上,網絡狀況一直不斷變化,很有可能在通訊過程中出現網絡連接斷開。我們在程序中有必要對這種情況進行檢測,從而及時做出響應。下面介紹幾種常用的超時檢測方法(假設我們要求通過套接字等待數據的最大時間為8秒):

  我們在網絡編程中常見的一種做法是:創建好套接字后以阻塞的方式讀寫,如果沒有數據可讀的話,程序會一直等待。事實上,網絡狀況一直不斷變化,很有可能在通訊過程中出現網絡連接斷開。我們在程序中有必要對這種情況進行檢測,從而及時做出響應。下面介紹幾種常用的超時檢測方法(假設我們要求通過套接字等待數據的最大時間為8秒):

  一、 設置套接字接收超時

  setsockopt可以設置套接字的屬性,其中包括接收超時時間。參考代碼如下

  struct timeval tv; // 描述時間的結構體變量

  ……

  tv.tv_sec = 8;

  tv.tv_usec = 0;

  setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));

  ……

  二、 多路IO復用SELECT

  SELECT 函數通常被用來實現多路IO復用,同樣可以利用它來實現超時處理。參考代碼如下:

  struct timeval tv; // 描述時間的結構體變量

  fdset rdfds; // 定義讀描述符集合

  ……

  tv.tv_sec = 8;

  tv.tv_usec = 0;

  FD_ZERO(&rdfds);

  FD_SET(sockfd, &rdfds);

[1]  [2]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

通信工程師備考資料免費領取

去領取

專注在線職業教育25年

信息系統項目管理師

信息系統項目管理師

信息系統項目管理師

!
咨詢在線老師!