Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加PPOOE层tp数据包-将长度转换为字节_C#_.net_Packet_Libpcap - Fatal编程技术网

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