关于数据包的ip头,tcp头,UDP头的几个参数意义.
typedef struct tcpheader
{
unsigned short int sport;//信源端口
unsigned short int dport;//信宿端口
unsigned int th_seq;//序列号
unsigned int th_ack;//确认号
unsigned char th_x2:4;//
unsigned char th_off:4;//数据偏移,长度为4位
unsigned char Flags;//标志位
unsigned short int th_win;//窗口域
unsigned short int th_sum;//校验和
unsigned short int th_urp;//紧急指针
}TCP;
typedef struct ipheader
{
unsigned char ip_hl:4, ip_v:4; //IP头长度和IP版本号,各4位
unsigned char ip_tos;//服务类型
unsigned short int ip_len;//总长度
unsigned short int ip_id;//标识符
unsigned short int ip_off;//片偏移
unsigned char ip_ttl;//生存时间
unsigned char ip_p;//协议
unsigned short int ip_sum;//头校验和
unsigned int ip_sr;//信源端口 ;
unsigned int ip_ds;//信宿端口 ;
}IP;
typedef struct udphdr
{
unsigned short spor;//信源端口;
unsigned short dpor;//信宿端口 ;
unsigned short le;//总长度 ;
unsigned short cksu;//校验和 ;
}UDP; //8
其中那个参数标示的是数据包的发送IP和端口?
还有就是我在用原始套接字嗅探的时候
recv( ServerSock, buf, sizeof(buf),0);
本机向外发送的数据包也可以接收到,是吗?