ads*_*px5 1 c++ sockets windows events
我有一个侦听线程,等待使用select和FD_SET在几个套接字上读取。故事是。在某个时候,我将向池中添加另一个套接字,并且需要中止选择并重新初始化选择的FD_SET数组。我有一个事件来通知池更改。但是select如何对我的活动做出反应?select()在此时间点使用timeval,等待间隔为20秒,并且我不想将时间更改为较低的值。我不想通过超时频繁重新启动select()...
有什么方法可以中止选择吗?什么是正确的方法来通知/重新启动选择并强制使用新的套接字列表(至少一个套接字将添加到池中)
另一个问题-Msdn说:“选择功能确定一个或多个套接字的状态,必要时等待执行同步I / O。” 这是否意味着select不适用于使用异步操作转换为使用的套接字?
使用WSAEventSelect()和WSAWaitForMultipleEvents()代替select()。这样,您的池可以创建一个单独的事件,WSACreateEvent()并用信号WSASetEvent()通知WSAWaitForMultipleEvents()在需要时唤醒。
| 归档时间: |
|
| 查看次数: |
1044 次 |
| 最近记录: |