InetStruct.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. ////////////////////////////////////////////////////////////////////////////////
  2. //  
  3. //  FileName    :   InetStruct.h
  4. //  Version     :   1.0
  5. //  Creater     :   Linsuyi
  6. //  Date        :   2002-01-09  14:34:34
  7. //  Comment     :   Internet structure used tcp/ip, header file (from RFC)
  8. //  
  9. ////////////////////////////////////////////////////////////////////////////////
  10. #ifndef _INETSTRUCT_H
  11. #define _INETSTRUCT_H   1
  12. // IP Header -- RFC 791
  13. typedef struct tagIPHDR
  14. {
  15.     unsigned char   VIHL;           // Version and IHL
  16.     unsigned char   TOS;            // Type Of Service
  17.     short           TotLen;         // Total Length
  18.     short           ID;             // Identification
  19.     short           FlagOff;        // Flags and Fragment Offset
  20.     unsigned char   TTL;            // Time To Live
  21.     unsigned char   Protocol;       // Protocol
  22.     unsigned short  Checksum;       // Checksum
  23.     unsigned long   SrcAddr;        // Internet Address - Source
  24.     unsigned long   DstAddr;        // Internet Address - Destination
  25.     
  26.     // optional data begins here
  27.     
  28. } IPHDR, IPHEADER, *PIPHDR, *PIPHEADER;
  29. #define ICMPTYPE_ECHOREPLY                  0
  30. #define ICMPTYPE_DSTNOTTOUCH                3
  31. #define ICMPTYPE_SRCRESTRAIN                4
  32. #define ICMPTYPE_RELOCATE                   5
  33. #define ICMPTYPE_ECHOREQUEST                8
  34. #define ICMPTYPE_ROUTEBOARDCAST             9
  35. #define ICMPTYPE_ROUTEREQUEST               10
  36. #define ICMPTYPE_DGTIMEOUT                  11
  37. #define ICMPTYPE_DAPARAMERROR               12
  38. #define ICMPTYPE_TIMETAGREQUEST             13
  39. #define ICMPTYPE_TIMETAGREPLY               14
  40. #define ICMPTYPE_INFOREQUEST                15
  41. #define ICMPTYPE_INFOREPLY                  16
  42. #define ICMPTYPE_ADDRMASKREQUEST            17
  43. #define ICMPTYPE_ADDRMASKREPLY              18
  44. #define ICMP_DATAMINSIZE                    32
  45. // ICMP Header - RFC 792
  46. typedef struct tagICMPHDR
  47. {
  48.     unsigned char   Type;           // Type
  49.     unsigned char   Code;           // Code
  50.     unsigned short  Checksum;       // Checksum
  51.     unsigned short  ID;             // Identification
  52.     unsigned short  Seq;            // Sequence
  53.     
  54.     // optional data begins here
  55.     
  56. } ICMPHDR, ICMPHEADER, *PICMPHDR, *PICMPHEADER;
  57. unsigned short  inet_chksum(unsigned short *data, int len);
  58. #endif  // #ifndef _INETSTRUCT_H