CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

iocp完成端口的问题(高级)

楼主RayL(水)2005-11-18 16:16:31 在 VC/MFC / 网络编程 提问

对于BOOL   bIORet   =   GetQueuedCompletionStatus(......)  
  返回   FALSE,GetLastError()=64,查到“指定的网络名不再可用。”  
  这时的LPOVERLAPPED*   lpOverlapped为NULL,导致无法删除该内存。  
  怎么办? 问题点数:100、回复次数:9Top

1 楼lianglp(寻找黄金分割点)回复于 2005-11-18 17:32:31 得分 0

因为你的socket句柄无效了,也就是说指定的socket句柄被closesocket()了。Top

2 楼RayL(水)回复于 2005-11-18 17:48:09 得分 0

原因我知道,是我自己搞的测试client搞出来的。关键是解决办法,谢谢!Top

3 楼RayL(水)回复于 2005-11-18 17:51:46 得分 0

其实可以在key那里做文章,但是这样总感觉不妥。。。Top

4 楼RayL(水)回复于 2005-11-21 10:34:31 得分 0

高手呢?Top

5 楼dingpiao(.......)回复于 2005-11-21 10:57:07 得分 0

就当没收呗Top

6 楼dingpiao(.......)回复于 2005-11-21 10:57:38 得分 0

sprintf(LogMsg,"GetQueuedCompletionStatus   failed   with   error   %d\n",   GetLastError());  
  ShowLogMsg(1,LogMsg);  
  if(iError==64)  
  {  
  // continue;  
  }Top

7 楼RayL(水)回复于 2005-11-21 17:26:19 得分 0

不行的,那段内存不删除怎么可以呢?Top

8 楼DoItFreely(Freely)回复于 2005-11-21 17:44:47 得分 0

如果是C++,让那块内存跟那个Socket/IO对象关联,由IO对象负责释放Top

9 楼lifengice0706(无)回复于 2005-11-21 18:52:39 得分 100

wsadata中只要你指定一个地址而已,你可以对每一个socket维护一段buffer,当返回64时,你必须closesocket()的,这时free()不就ok了,何况key是个很好的办法。  
   
  http://community.csdn.net/Expert/TopicView3.asp?id=4370844看看有帮助没?Top

相关问题

  • IOCP 完成端口问题(急)
  • 【IOCP完成端口求教】想学习完成端口技术,特来虚心学习
  • "IOCP(I/O完成端口)"与"完成端口I/O模型"间是什么关系?
  • 完成端口,WSASend
  • 完成端口==高性能?? 对iocp感兴趣的都来看一下吧
  • 关于完成端口
  • 关于完成端口
  • 【求助】在完成端口IOCP模型下如何知道客户端已关闭连接(掉线)?
  • 如何关闭完成端口
  • 关于完成端口(COMPLETION PORT)

关键词

  • 内存
  • 指定

得分解答快速导航

  • 帖主:RayL
  • lifengice0706

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo