C# 添加PPOOE层tp数据包-将长度转换为字节
我有一个可以播放C# 添加PPOOE层tp数据包-将长度转换为字节,c#,.net,packet,libpcap,C#,.net,Packet,Libpcap,我有一个可以播放Pcap文件的应用程序,我尝试添加用PPPOE层包装数据包的功能 所以几乎所有的工作都完成了,除了大数据包,我还不知道如何在添加PPPOE层之后设置新的langth 例如,此数据包: 正如您所看到的,这个数据包长度是972字节(03 cc),我只想把它转换成十进制,在我的代码中看到这个数据包字节[]后,我可以看到这个值在我的数据包字节[]中转换成3和204,所以我的问题是这个计算是如何工作的?这两个字节代表一个短的()以bigendian表示法(首先是最高有效字节) 您可以采用
Pcap
文件的应用程序,我尝试添加用PPPOE
层包装数据包的功能
所以几乎所有的工作都完成了,除了大数据包,我还不知道如何在添加PPPOE
层之后设置新的langth
例如,此数据包:
正如您所看到的,这个数据包长度是972字节(03 cc),我只想把它转换成十进制,在我的代码中看到这个
数据包字节[]
后,我可以看到这个值在我的数据包字节[]
中转换成3和204
,所以我的问题是这个计算是如何工作的?这两个字节代表一个短的()以bigendian表示法(首先是最高有效字节)
您可以采用两种方法来获取这两个字节的十进制值。一个是和同学一起,另一个是自己计算
位转换器
算算你自己
两个字节的基256:
// the bytes
var bytes2 = new byte[] {3, 204};
// [0] * 256 + [1]
var value2 = bytes2[0] * 256 + bytes2[1]; // 3 * 256 + 204
value2.Dump(); // 972
// the bytes
var bytes2 = new byte[] {3, 204};
// [0] * 256 + [1]
var value2 = bytes2[0] * 256 + bytes2[1]; // 3 * 256 + 204
value2.Dump(); // 972