用select使Accept()具有超时能力

来源:互联网 发布:网络教育有哪68所学校 编辑:程序博客网 时间:2024/04/28 12:05

因为是在线程里面调用Accept(),所以不希望一直阻塞。

  1. struct timeval timeout={2,0};
  2. fd_set rfd;
  3. int nfds;
  4. while (1)
  5. {
  6.     FD_ZERO(&rfd);
  7.     FD_SET(listen,&rfd);
  8.     nfds = select(1,&rfd,(fd_set*) 0,(fd_set*) 0,&timeout);
  9.     if(nfds==0)
  10.         continue;
  11.     else if(nfds>0)
  12.         FD_CLR(listen,&rfd);
  13.         //accept socket
  14.     else
  15.         break;
  16. }
原创粉丝点击