gpt4 book ai didi

c++ - 缓冲区中TCP数据是否可以重叠

转载 作者:可可西里 更新时间:2023-11-01 02:52:47 27 4
gpt4 key购买 nike

如果我一直向接收方发送数据,发送的数据是否可能重叠,以至于它们在缓冲区中累积,因此下一次读取缓冲区时也会读取另一个已发送数据的数据?

我正在使用 Qt 和 readAll() 接收数据并解析它。该数据中有一些结构,所以我可以知道数据是否已经完整或者它是否是有效数据,但我担心当我调用 readAll() 时其他数据会与其他数据重叠因此会使这个假设有效的数据无效。

如果它可能发生,我该如何预防/控制它?或者这是 OS/API 担心的事情?我担心的部分原因是该方法的调用方式。哈哈

最佳答案

TCP 是基于流的连接,而不是基于数据包的连接,因此您可能不会假设一次发送的内容也会一次收到。您仍然需要某种协议(protocol)来打包您的流。

对于发送字符串,您可以使用空字符作为分隔符,或者您可以以包含魔法和长度的 header 开头。

关于c++ - 缓冲区中TCP数据是否可以重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9937816/

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