WSABUF 数组 在传递后是否可以立即删除?

darkseer 2006-09-16 10:13:19
如:

{
WSABUF* tt=new WSABUF[2];
...
WSARecv(s,tt,2,...);
delete [] tt;
}

这样的操作是否可以?会出现什么问题吗?
...全文
214 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SolidusSnake 2006-09-18
  • 打赏
  • 举报
回复
WSABUF就是传递那么个数据缓冲区的头指针和区域长度,所以声明为stack对象就可以了
darkseer 2006-09-16
  • 打赏
  • 举报
回复
如果是异步的话.是不是这个WSABUF就不能删除了?要等收完成再删除?
贵子潘 2006-09-16
  • 打赏
  • 举报
回复
所以WSABUF* tt=new WSABUF[2];改成WSABUF[2]就可以罗
贵子潘 2006-09-16
  • 打赏
  • 举报
回复
如果数据确定传输成功了,是可以删除
你这是接收吧?
WSABUF里只包含一个长度,一个缓冲区指针,还应该分配一个缓冲区...
acejoy 2006-09-16
  • 打赏
  • 举报
回复
异步操作,你必须保证这个缓冲区在操作完成之前是有效的!否则立刻报错崩溃。
道理很简单,你投递了异步操作到OS,然后你的程序返回,如果把缓冲区删除了,OS怎么拿那个缓冲区的数据进行操作呢?


--------------------------
国内专业的ACE网络编程、开发论坛开通:
www.acejoy.com
www.acedevelop.com
涉及ACE使用和开发,中间件、服务器端软件的设计,P2P技术,
socket网络编程、应用开发等内容。
欢迎加入,大家一起交流、学习成长!

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧