如题

解决方案 »

  1.   

    这个是出于传输考虑的规定,要用0来添充,如果你不是最底层数据包的话,Windows自己会处理的。
      

  2.   

    如果原来的数据里头就有0呢,怎么判定0是数据还是补齐的呢?
    假如一个包含有34个字符的数据块,经补齐以后length/type是64还是52(34+18)呢?
      

  3.   

    下层协议会有数据长度字段或其他方法进行判断的。以太正最短只有46个字节。  如果你的包+ 以太头 <46 
    假设数据长度为10
    那么系统在你的数据后面+垃圾数据 填够46 个字节。
    你的数据在解析的时候。 从自己的头里面获取出数据的长度 10 。把后面的垃圾数据drop 掉就ok
      

  4.   

    随便 一般填0就行
    你可以自己构造一个ARP包试验一下
    该包42字节
    剩下的填0就行了