PHP超時處理全面總結(6)

發表于:2013-10-28來源:酷勤網作者:不詳點擊數: 標簽:php
[CC++中超時實現] 一般在 Linux C/C++中,可以使用:alarm()設置定時器的方式實現秒級超時,或者:select()、poll()、epoll()之類的異步復用IO實現毫秒級超時。也

  [C&C++中超時實現]

  一般在LinuxC/C++中,可以使用:alarm()設置定時器的方式實現秒級超時,或者:select()、poll()、epoll()之類的異步復用IO實現毫秒級超時。也可以使用二次封裝的異步io庫(libevent,libev)也能實現。

  一、使用alarm中用信號實現超時 (秒級超時)

  說明:Linux內核connect超時通常為75秒,我們可以設置更小的時間如10秒來提前從connect中返回。這里用使用信號處理機制,調用alarm,超時后產生SIGALRM信號(也可使用select實現)

  用alarym秒級實現 connect設置超時代碼示例:

//信號處理函數

staticvoidconnect_alarm(intsigno)

{

debug_printf("SignalHandler");

return;

}

//alarm超時連接實現

staticvoidconn_alarm()

{

  Sigfunc*sigfunc;//現有信號處理函數

  sigfunc=signal(SIGALRM,connect_alarm);//建立信號處理函數connect_alarm,(如果有)保存現有的信號處理函數

inttimeout=5;

//設置鬧鐘

  if(alarm(timeout)!=0){

  //...鬧鐘已經設置處理

  }

//進行連接操作

if(connect(m_Socket,(structsockaddr*)&addr,sizeof(addr))<0){

if(errno==EINTR){//如果錯誤號設置為EINTR,說明超時中斷了

debug_printf("Timeout");

&nbs

原文轉自:http://www.kuqin.com/web/20120808/324135.html

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97