这里抄两个 定义的 TCP 和 IP 结构体 以后用到方便
IP数据报报头有一个长度为4位的首部长度,长度为16位的总长度。
首部长度是指首部长度为32比特的倍数(即4个字节的整数倍,或者说其单位为4个字节)。
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位紧急数据偏移量
};