• 网络编程.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、

  • 相关阅读:
    差分隐私 differential privacy privSQL ||sql query ||sql查询系统||PrivateSQL:A Differentially Private SQL Query Engine论文笔记
    分冶法解决大整数相乘 最近对问题
    数论 矩阵交集
    STl 优先队列 C++
    备份mysql函数和存储过程
    Idea 注解模板
    excel导出
    帆软常用小技巧
    js + java文件下载
    try/finally
  • 原文地址:https://www.cnblogs.com/javaskill/p/12035873.html
Copyright © 2020-2023  润新知