VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 246|回复: 3

CreateIoCompletionPort 使用send or wsasend?

[复制链接]
35_avatar_middle
最佳答案
0 
online_vip 发表于 2020-2-2 14:57:06 | 显示全部楼层 |阅读模式
我想使用CreateIoCompletionPort 来做服务器通信,可是看了网上的说法,最好使用WSASend and WSARecv
难道使用send and recv不行吗?
哪位大哥能告知一下小弟?


还有当client连接sever的时候,GetQueuedCompletionStatus 会接收到消息吗?


有没有简单的例子?




上一篇:SetLimitText(0)问题
下一篇:用Visual Studio2019 学习C++,每编写一个小程序,占用硬盘都非常多,为什么呢?
01_avatar_middle
最佳答案
39 
online_admins 发表于 2020-2-2 15:06:40 | 显示全部楼层
WSASend 和 WSARecv 是支持异步IO的,一般是配合完成端口的 CreateIoCompletionPort 一起使用。也不是说 CreateIoCompletionPort 就不能和 send 和 recv 配合使用,只不过 WSASend 和 WSARecv 更适合
35_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-2 22:47:05 | 显示全部楼层
admin 发表于 2020-2-2 15:06
WSASend 和 WSARecv 是支持异步IO的,一般是配合完成端口的 CreateIoCompletionPort 一起使用。也不是说 Cr ...

ret = GetQueuedCompletionStatus(
            CompletionPort,
            &BytesTransferred,
            (LPDWORD)&PerHandleData,
            (LPOVERLAPPED *) &PerIoData,
            INFINITE);

PerHandleData是从 CreateIoCompletionPort -> CompletionKey 传过去。

在完成端口的课程中,我唯一看不明白的地方,就是PerIoData是从哪里传来的值?
而且 LPPER_IO_DATA PerIoData;这个结构从哪里来?可以自己定义?里面有接收 Buffer ,这个Buffer成员从哪里来得到的值?
87_avatar_middle
最佳答案
11 
在线会员 发表于 2020-2-3 14:32:06 | 显示全部楼层
cheating_plugin 发表于 2020-2-2 22:47
ret = GetQueuedCompletionStatus(
            CompletionPort,
            &BytesTransferred,

看看远控gh0st源码就一目了然了!
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-11-29 13:03

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表