我用 WSAWaitForMultipleEvents模型写了一个网络服务端,端口为8888 然后我用google浏览器访问 localhost:8888 ,服务器可以响应3次fd_accept事件,然后因为维护了一个socket数组,每次成功响应fd_accept事件就利用accept()构建一个socket来做数据传输,于是就会生成3个sAcceptSocket,但是等待很久,一般会触发FD_CLOSE事件,但是不会有3次,而是1次到2次,于是数组中总是会不断积累新的sAcceptSocket,最终会达到64的最大值,然后WSAWaitForMultipleEvents就不再响应任何事件了,是什么原因?
解决方案 »
- 《 VC++ 技术内幕》 dll 问题求教
- 聊天软件内外网映射问题?
- @@@@高分求@@@@@请问用gdi+的getThumbnailImage得到的缩略图如何保存起来?
- 读取文本中文本
- 一个让我郁闷了一晚上的问题!!!!提醒大家注意!!!
- **如何计算某段代码行的执行时间?**
- 怎样做广播?
- ado中写入access数据库的问题!急!急!急!!!请帮下忙!谢谢!
- Win32 Application 和 Win32 Application consloe? //////////////////////////
- 在对话框中,手动建立了一个RICHEDIT控件,如何让它的垂直滚动条一直出现?
- A调用B的函数删除自己,返回出错怎么办?
- AVIFileGetStream函数的最后一个参数是什么意思?
1. 收到FD_CLOSE后,调用closesocket关闭连接,并清除数组中的socket.
2. 服务器发送完数据后,主动关闭socket,并清队数组中的socket.
这里有个HTTP服务器程序,与你的类似,可以参考一下,解压后找WebSrv目录.下载地址:http://download.csdn.net/detail/geoff08zhang/4571358