• 网络编程.TCP分块接收数据(AIO)(IOCP)


    1、前提:每次投递的接收缓冲区 在它返回后 就不再用它进行2次投递了

      于是 接收缓冲区 在返回的时候,数据都是 从接收缓冲区的偏移[0]处开始填充的,且 接收缓冲区 可能被填满 也可能未被填满。

     1.1、

      假设 现在 接收到的 TCP数据块 已经是正确的顺序了(不管用何种手段,反正是保证了这个前提了)

      假设 缓冲区长度为 1024

      来了一个 TCP数据(长度为) 3000

      

      (不管什么原因:可能是 发送机 较忙、网络较拥堵、交换机较忙)

      可能接收的数据是这样的:(接收到的每一块数据 或 其中的某几个[尤其是 非末尾的]数据块 并未填满整个接收缓冲区)

       第1块数据长度为:500

       第2块数据长度为:500

       第3块数据长度为:500

       第4块数据长度为:500

       第5块数据长度为:500

       第6块数据长度为:500

      貌似 我实验的过程中 遇到过这个现象

     其它可能的情况:

      一个接收缓冲区中,包含 多个完整的TCP数据包

      一个接收缓冲区中,包含 若干个完整的TCP数据包 + 最多2个不完整TCP数据包

    2、

    3、

    4、

    5、

  • 相关阅读:
    #在蓝懿学习iOS的日子#Day10
    #在蓝懿学习iOS的日子#Day9
    #在蓝懿学习iOS的日子#第三个练习日
    #在蓝懿学习iOS的日子#Day8
    WCF基础:绑定(二)
    WCF基础:绑定(三)
    WCF基础:绑定(一)
    MVC框架中的值提供机制(三)
    MVC框架中的值提供机制(二)
    MVC框架中的值提供机制(一)
  • 原文地址:https://www.cnblogs.com/javaskill/p/12035873.html
Copyright © 2020-2023  润新知