sys_ping.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef __SYS_PING_H
  2. #define __SYS_PING_H
  3. #include "stdint.h"
  4. typedef struct icmp_hdr
  5. {
  6. unsigned char icmp_type; // 消息类型
  7. unsigned char icmp_code; // 代码
  8. unsigned short icmp_checksum; // 校验和
  9. // 下面是回显头
  10. unsigned short icmp_id; // 用来惟一标识此请求的ID号
  11. unsigned short icmp_sequence; // 序列号
  12. unsigned long icmp_timestamp; // 时间戳
  13. } ICMP_HDR, *PICMP_HDR;
  14. typedef struct _IPHeader// 20字节的IP头
  15. {
  16. uint8_t iphVerLen; // 版本号和头长度(各占4位)
  17. uint8_t ipTOS; // 服务类型
  18. uint16_t ipLength; // 封包总长度,即整个IP报的长度
  19. uint16_t ipID; // 封包标识,惟一标识发送的每一个数据报
  20. uint16_t ipFlags; // 标志
  21. uint8_t ipTTL; // 生存时间,就是TTL
  22. uint8_t ipProtocol; // 协议,可能是TCP、UDP、ICMP等
  23. uint16_t ipChecksum; // 校验和
  24. uint32_t ipSource; // 源IP地址
  25. uint32_t ipDestination; // 目标IP地址
  26. } IPHeader, *PIPHeader;
  27. typedef int SOCKET;
  28. void ping_task_creat();
  29. void ETH_PingWork(void const * argument);
  30. #endif