gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:54:28 28 4
gpt4 key购买 nike

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

提前致谢:)

最佳答案

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

struct MyOverlapped
{
OVERLAPPED SystemOverlapped;
int MyStuff;
void* MoreStuffForMe;
};

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

编辑:C++ 继承也应该有效,所以你也可以这样做

 struct MyOverlapped : public OVERLAPPED
{
...
};

关于c++ - IO 完成端口 - 发送还是接收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12023052/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com