读书人

socket多线程服务器中FD_SET如何清理

发布时间: 2012-01-30 21:15:58 作者: rapoo

socket多线程服务器中FD_SET怎么清理?
服务器结构:
主线程 accept 后将套接字放入FD_SET,
管理线程 select 可用socket并传给某个线程,唤醒这个线程
工作线程 recv数据,完成后清理掉FD_SET中这个socket.


问题如下:
FD_SET无法清空,日志跟踪证明同步通过,清理函数正确完成,
但是那个socket还是在FD_SET里.

why???


[解决办法]
不知你为何这么实现,具体又是怎么实现的。
看一下Windows网络编程
[解决办法]
前面加个volatile看看,另外是不是有多个SOCKET同时就绪,而你没有控制好啊?
不过感觉你的实现有点偏门,线程间切换大约1000个CPU,你3个线程连续频繁切换,这个那个。。。

读书人网 >VC/MFC

热点推荐