c/c++语言开发共享为什么关闭套接字不能让select()返回?

在我的程序中,在侦听套接字上有一个线程阻塞,它等待其他连接,代码喜欢这样:

{ ...... FD_ZERO(&fd_sets); FD_SET(sock_fd, &fd_sets); ret_val = select(sock_fd + 1, &fd_sets, NULL, NULL, NULL); if (ret_val > 0) { accept(sock_fd, NULL, NULL); ...... } else { ...... } 

根据我的理解,如果在其他线程中,关闭套接字,代码喜欢这样:

 { ...... shutdown(sock_fd, SHUT_RD); ...... } 

我认为前一个线程中的select()应该返回。 但经过测试,我发现select()仍处于阻塞状态。

为什么关闭套接字不能让select()返回?

      以上就是c/c++开发分享为什么关闭套接字不能让select()返回?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/523209.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐