zoukankan      html  css  js  c++  java
  • 网络-----28 socket模块 粘包

    一 .socket 模块参数及方法

    二.缓冲区

     三.粘包

      1.两种粘包现象

      ①连续的小包可能会被优化算法给组合到一起进行发送

      ②第一次如果发送的数据大小2000B接收端一次性接受大小为1024,

      这就导致剩下的内容会被下一次recv接收到,导致结果错乱

     

      2.两种解决方案

      ①方案一:由于双方不知道对方发送数据的长度,导致接收的时候,可能接收不全,

      或者多接收另外一次发送的信息内容,所以在发送真实数据之前,要先发送数据的长度,

      接收端根据长度来接收后面的真实数据,但是双方有一个交互确认的过程

      ②方案二:

        Struct模块,

        打包:struct.pack(‘i’,长度)

        解包:struct.unpack(‘i’,字节)

  • 相关阅读:
    Web 呼起 APP
    移动端监测离开页面
    input 呼起数字键盘
    建站工具Hexo
    linux 查找并kill进程
    linux php --ini
    Git + BeyondCompare
    Linux连续执行多条命令
    chrome start.js报错
    emoji和utf8mb4字符集
  • 原文地址:https://www.cnblogs.com/amirky/p/10268574.html
Copyright © 2011-2022 走看看