发送icmp数据包怎么控制内容_数据包已发送有但没有已接收

(5) 2024-07-13 10:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
发送icmp数据包怎么控制内容_数据包已发送有但没有已接收,希望能够帮助你!!!。

typedef   struct   iphdr   {  
   unsigned   int   version:4;   //   IP版本号,4表示IPV4   
      unsigned   int   h_len:4;   //   4位首部长度   
      unsigned   char   tos;   //   8位服务类型TOS   
      unsigned   short   total_len;   //   16位总长度(字节)      
      unsigned   short   ident;   file://16位标识   
      unsigned   short   frag_and_flags;   //   3位标志位   
      unsigned   char   ttl;   file://8位生存时间   TTL   
      unsigned   char   proto;   //   8位协议   (TCP,   UDP   或其他)   
      unsigned   short   checksum;   //   16位IP首部校验和   
      unsigned   int   sourceIP;   file://32位源IP地址   
      unsigned   int   destIP;   file://32位目的IP地址}IpHeader;    
   
    然后定义一个ICMP首部:  
  typedef   struct   _ihdr   {   
      BYTE   i_type;   file://8位类型   
      BYTE   i_code;   file://8位代码   
      USHORT   i_cksum;   file://16位校验和      
      USHORT   i_id;   file://识别号(一般用进程号作为识别号)   
      USHORT   i_seq;   file://报文序列号      
      ULONG   timestamp;   file://时间戳}IcmpHeader;    
   
   这时可以同过WSASocket建立一个原始套接口:SockRaw=WSASocket(AF_INET,   file://协议族   SOCK_RAW,   file://协议类型,SOCK_RAW表示是原始套接口  IPPROTO_ICMP,   file://协议,IPPROTO_ICMP表示ICMP数据报 NULL,   file://WSAPROTOCOL_INFO置空   0,   file://保留字,永远置为0  WSA_FLAG_OVERLAPPED   file://标志位);  注:为了使用发送接收超时设置(设置SO今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复