我正在尝试在 C 中创建一个 IP 标头。
typedef struct header
{
//IP-Header
unsigned char ip_v:4, ip_hl:4;/* this means that each member is 4 bits */
unsigned char ip_tos; //1 Byte
unsigned short int ip_len; //2 Byte
unsigned short int ip_id; //2 Byte
unsigned short int ip_off; //2 Byte
unsigned char ip_ttl; //1 Byte
unsigned char ip_p; //1 Byte
unsigned short int ip_sum; //2 Byte
unsigned int ip_src; //4 Byte
unsigned int ip_dst; //4 Byte
} __attribute__((packed)) ipheader;
现在我想使用结构并将十六进制值保存在变量中。
int main()
{
ipheader iph;
iph.ip_v='\x4';
iph.ip_hl='\x5';
iph.ip_tos='\x00';
return 0;
}
如何将103C 写入 iph.ip_len?这种结构是存储 IP 标头的好方法吗?