取消阻止阻止的Winsock accept()调用

Dav*_*ave 6 winsock

我在VS 2008下使用Winsock.

我有一个专门通过阻塞调用accept()接受传入TCP连接请求的线程.当我的应用程序关闭时,我需要以某种方式取消阻止此线程,以便它可以执行其关闭工作并退出.有没有办法可以解锁accept()?

我将发布另一个问题,以防无法解锁accept().那个问题是:如果我对在accept()上被阻塞的线程进行硬杀死,那么会发生什么不好的事情(操作系统数据结构的损坏等)?

谢谢,戴夫

Rem*_*eau 8

解除阻塞的唯一方法accept()是从另一个线程关闭侦听套接字.否则,您需要将侦听套接字置于非阻塞模式并使用select()(支持超时)来检测何时accept()可以无阻塞地调用.