跟大家讨论一个IOCP和AcceptEx一起使用的问题,一个客户端连接结束后,是不是要关掉 本帖最后由 VisualEleven 于 2010-09-17 08:55:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WSAIoctl()这个函数只需调用一次,加载扩展函数AcceptEx。当你接收到连接后调用closesocket(OverlapPlus->sclient);连接就会断开的应该要监听套接字上再投递接收连接请求,并在接收到的套接字(OverlapPlus->sclient)上投递几个读请求 你客户端关闭套接字以后,你的服务器检查到客户端已经断开,当然也要关闭SOCKET,释放其它的资源了。你的服务器端仍然可以继续投递AcceptEx监听,等待客户端connect来连接 Client断开-Server监听到后则释放和此Client相关的资源 这里我只讨论socket的问题,别的资源自然要回收。每次调用socket()系统内核都会消耗一定的资源申请套接字,这是个耗功的操作。这里我以前看过一些资料上面有个说法:将原本需要closesocket()的套接字sock_A存下来,这这时SOCK_A是处于CLOSE_WAIT状态,也就是等待程序关闭的状态。这时可以调用AcceptEx()函数来指定sock_A为新连接的套接字,这样就可以免去申请socket的消耗。(这个方法我暂时没测试过,在此等待楼主的测试结果哈哈) 关于显示JPG图片的补充问题,再来50分。 请您推荐书籍资料 如何使listctrl列的宽度不可调节(column的宽度固定)? m_Rst.open()查询问题? 树形控件中数据的刷新问题 真想大哭一场,为什么我这么笨 怎么能知道系统是否在屏保状态? 关于修改groupbox的背景颜色的问题 请问图标为什么不能在桌面和文件夹里同时显示? 急:请问怎么在基于对话框的程序上加一个状态栏 CListCtrl 如何调整列的位置 freetype实现字体描边
每次调用socket()系统内核都会消耗一定的资源申请套接字,这是个耗功的操作。
这里我以前看过一些资料上面有个说法:
将原本需要closesocket()的套接字sock_A存下来,这这时SOCK_A是处于CLOSE_WAIT状态,也就是等待程序关闭的状态。这时可以调用AcceptEx()函数来指定sock_A为新连接的套接字,这样就可以免去申请socket的消耗。(这个方法我暂时没测试过,在此等待楼主的测试结果哈哈)