Windows网络编程

这里抄两个 定义的 TCP 和 IP 结构体   以后用到方便

 

IP数据报报头有一个长度为4位的首部长度,长度为16位的总长度。
首部长度是指首部长度为32比特的倍数(即4个字节的整数倍,或者说其单位为4个字节)。

所以IP首部最长为[(2的4次方) - 1] * 4 = 60字节。
总长度的单位是字节。
所以,IP数据报大小(包含首部) = (2的16次方) - 1 = 65535字节。


struct IPHEAD  
{  
unsigned char h_len:4;//4位首部长度+4位IP版本号  
unsigned char ver:4;  
unsigned char tos;//8位服务类型TOS  
unsigned short total_len;//16位总长度(字节)  IP数据报长度   单位 为字节
unsigned short ident;//16位标识  
unsigned short frag_and_flags;//3位标志位  
unsigned char ttl;//8位生存时间 TTL  
unsigned char proto;//8位协议 (TCP, UDP 或其他)  
unsigned short checksum;//16位IP首部校验和  
unsigned int sourceip;//32位源IP地址  
unsigned int destip;//32位目的IP地址  
};  


struct TCPHEAD //定义TCP首部  
{  
USHORT th_sport; //16位源端口  
USHORT th_dport; //16位目的端口  
unsigned int th_seq; //32位序列号  
unsigned int th_ack; //32位确认号  
unsigned char th_lenres; //4位首部长度/6位保留字  
unsigned char th_flag; //6位标志位  
USHORT th_win; //16位窗口大小  
USHORT th_sum; //16位校验和  
USHORT th_urp; //16位紧急数据偏移量  
};  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章