zoukankan      html  css  js  c++  java
  • 网络编程.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、

  • 相关阅读:
    学习 swift (1)
    Sbulime Text 2 修改选中字符串的颜色
    js string 和 json 互转
    Mac OSX sublime text2 各种快捷键
    webstorm keymap
    python http post json
    node.js async 几个函数
    python 爬图 helloworld
    合服导致 globalserver 起不来的问题
    ssh 登陆 端口转发
  • 原文地址:https://www.cnblogs.com/javaskill/p/12035873.html
Copyright © 2011-2022 走看看