我正在通过DllImport
使用名为WinDivert的基于C的本机库来处理C#中的数据包。
在C#get
中定义和处理(<{> 1位小于8位)数据的最佳定义和处理(set
,struct
)数据的最佳方法是什么,就像C样式{{ 1}},而无需使用按位运算?
也许 struct
属性?
MarshalAs
变量typedef struct
{
UINT16 SrcPort;
UINT16 DstPort;
UINT32 SeqNum;
UINT32 AckNum;
UINT16 Reserved1:4;
UINT16 HdrLength:4;
UINT16 Fin:1;
UINT16 Syn:1;
UINT16 Rst:1;
UINT16 Psh:1;
UINT16 Ack:1;
UINT16 Urg:1;
UINT16 Reserved2:2;
UINT16 Window;
UINT16 Checksum;
UINT16 UrgPtr;
} WINDIVERT_TCPHDR, *PWINDIVERT_TCPHDR;
,Reserved1
定义为 4位,以及HdrLength
,Fin
,Syn
,{{1 }},Rst
,Psh
是 1位,而Ack
是 2位。
谢谢。