【发布时间】:2012-01-03 17:48:18
【问题描述】:
我在 VS 2008 下使用 Winsock。
我有一个线程专门用于通过对accept() 的阻塞调用来接受传入的TCP 连接请求。当我的应用程序需要关闭时,我需要以某种方式解除对该线程的阻塞,以便它可以执行关闭工作并退出。有什么方法可以解除对 accept() 的阻止吗?
我将发布另一个问题,以防无法解除对 accept() 的阻止。那个问题是:如果我硬杀掉在 accept() 上被阻塞的线程,会不会发生任何不好的事情(操作系统数据结构的损坏等)?
谢谢, 戴夫
【问题讨论】:
-
你不能关闭你被阻塞的套接字吗?这将导致
accept()返回。 -
IME,在 accept() 被阻止的情况下退出应用程序就可以了。操作系统会清理干净,不会损坏任何东西。如果你真的,绝对必须明确清理,然后按照其他海报的建议从另一个线程关闭套接字。
标签: winsock