我有一个监听线程,等待使用 select 和 FD_SET 在几个套接字上读取。故事是。在某个时候,我将向池中添加另一个套接字,并且需要中止选择并重新初始化选择的 FD_SET 数组。我有一个事件来表示池更改。但是 select 如何对我的事件做出反应?select() 此时使用 timeval 等待间隔为 20 秒,我不想将时间更改为较低的值。我不希望经常通过超时重新启动 select() ...
有没有办法中止选择?通知/重新启动选择和强制使用新的套接字列表的正确方法是什么(至少一个套接字将添加到池中)
还有另一个问题——Msdn 说“选择函数确定一个或多个套接字的状态,必要时等待,以执行同步 I/O。” 这是否意味着 select 不适用于使用异步操作的套接字?