【问题标题】:Boost asio async handler in tcp在 tcp 中提升 asio 异步处理程序
【发布时间】:2019-05-25 20:38:32
【问题描述】:

也许这是一个非常简单的问题,但我没有找到答案。我使用 boost asios tcp 类来处理一个简单的字节协议。我做了 async_read_some 并且处理程序做了一些工作。处理程序完成后,我启动另一个 async_read_some。让我们假设这个处理程序做了很多计算。处理程序工作和下一次调用 async_read_some 之间的传入数据是否有可能丢失?

【问题讨论】:

    标签: c++ networking tcp boost-asio


    【解决方案1】:

    不,您的操作系统会继续接收数据,直到其接收缓冲区/TCP 接收窗口已满。一旦接收缓冲区已满,TCP 的流控制将确保发送方发送的数据不会超过接收方可以接收的数据,这样就不会丢失任何数据。

    请参阅https://www.brianstorti.com/tcp-flow-control/ 以获得很好的解释/示例。

    https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Flow_control

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      相关资源
      最近更新 更多