gpt4 book ai didi

c++ - 是否可以触发由 1 发送触发的 2 接收回调?

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

我正在从事一个网络项目。我必须知道,如果我将数据从客户端发送到服务器监听器,监听器可以使用 2 个或更多回调(TCP 阻塞)处理该数据吗?也就是说,我已经发送了“Hello World”,服务器监听器(TCP 阻塞)可以像 1“Hello”2“World”或 1“Hell”2“o World”等那样处理这个接收吗?如果这是可能的,我将为我的 TCP 数据包创建一个数据包处理程序。谢谢!

编辑: (更多描述),这是否可能(TCP 阻塞)?

  • 客户说“Hello world”
  • 服务器在第一个回调 "recv();" 中读取“Hello”(recv(); 函数给出“Hello "输出)
  • 服务器在第二次回调 "recv();" 中读取“world”(recv(); 函数给出“world” "输出)

最佳答案

是的,这绝对有可能。在这种特殊情况下,这是不太可能的,但是如果您的数据包比 12 字节大一点——比如几百或几千字节,如果您将它发送到比本地网络更远的地方,它几乎肯定会被拆分。

需要注意的是,你也可以得到相反的问题——发送方发送两个单独的“数据包”,而接收方只收到一个数据 block 。请记住,TCP 是一种流协议(protocol),而不是数据包协议(protocol) - 数据包仅作为底层协议(protocol)栈的一部分存在,并且可以根据网络认为合适的方式拆分和合并。您所得到的只是您收到的数据顺序正确,并且数据 block 的校验和是正确的。

关于c++ - 是否可以触发由 1 发送触发的 2 接收回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927668/

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