gpt4 book ai didi

c++ - readv(), writev(), WSARecv(), WSASend()

转载 作者:行者123 更新时间:2023-11-28 08:33:40 25 4
gpt4 key购买 nike

希望你能帮帮我。

我正在尝试通过 TCP/IP 通过网络发送 1000 位的数据包,我希望也能够在 Cygwin 和 Windows 中使用重叠 I/O 技术。

在 Cygwin 中,我尝试使用“readv() 和 writev()”函数调用来发送 1000 位,而在 Windows 中,我尝试使用 winsock2 中的 WSASend() 和 WSARecv() API。 h 头文件。

似乎我只能从 Cygwin(client.cpp) 发送 1000 位到 Windows(server.cpp)。 1000多位,遇到意想不到的结果。这些位似乎被环绕或覆盖了。

我在整个互联网上搜索过,但似乎没有人像我一样尝试过使用这种方法来处理事情,因此我正在寻求您的帮助。

谢谢你和最好的问候,科尼利厄斯

最佳答案

如果您想在 Windows 上使用重叠 I/O,那么您可能想看看我在代码项目中写的一些文章,这些文章可能会为您提供一个起点。这些使用 IO 完成端口,这是在 Windows 上执行重叠 I/O 的最有效方式,并带有完整的源代码。有文章和最新来源的链接 here .

根据您的简短问题描述,很难准确判断可能出了什么问题。您很可能假设您的读取将读取与您正在写入的相同数量的数据,而 TCP 并非如此; TCP 是一个字节流,您的读取需要考虑到这一点并相应地循环,直到您重新组装一个完整的“消息”。

关于c++ - readv(), writev(), WSARecv(), WSASend(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/708990/

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