首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IO完成端口-发送还是接收?

IO完成端口-发送还是接收?
EN

Stack Overflow用户
提问于 2012-08-19 07:30:51
回答 2查看 644关注 0票数 2

如果我编写了一个使用IO完成端口来使用非阻塞套接字进行多路复用的程序,那么当getQueuedCompletionStatus返回时,我如何知道在套接字上执行的函数是send还是recv?

提前感谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-19 16:24:57

您将收到一个指向用于该操作的重叠结构的指针。只需创建包含重叠结构的另一个结构,这样当您在完成状态中获得重叠结构时,您可以将其转换为您的结构:

代码语言:javascript
复制
struct MyOverlapped
{
    OVERLAPPED SystemOverlapped;
    int MyStuff;
    void* MoreStuffForMe;
};

显然,您只需将接收到的OVERLAPPED*转换为MyOverlapped*即可到达您的字段。你在你的田里投入了什么取决于你自己。

编辑: C++继承也应该起作用,所以你也可以这样做

代码语言:javascript
复制
 struct MyOverlapped : public OVERLAPPED
 {
     ...
 };
票数 3
EN

Stack Overflow用户

发布于 2012-08-19 08:07:19

哦,我不知道。在初始化ReadFileEx,WriteFileEx调用中传入的buffer结构中放入一个布尔值。诸如此类的事情。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12023052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档