?? packetheader.h
字號:
#ifndef PACKETHEADER_H
#define PACKETHEADER_H
#pragma pack(1)
// 定義IP數據報的基本報頭,共計20個字節
struct IPHeader
{
unsigned char versionAndHeaderLength; // 4位版本號 + 4位頭部長度(單位:4Bytes)
unsigned char typeOfService; // 8位服務類型
unsigned short totalLength; // 16位總長度(單位:Byte)
unsigned short id; // 16位標識
unsigned short flagsAndFragmentOffset; // 3位標志 + 13位片偏移
unsigned char timeToLive; // 8位生存時間
unsigned char protocol; // 8位協議
unsigned short headerChecksum; // 16位頭部校驗和
unsigned long srcIP; // 32位源IP地址
unsigned long destIP; // 32位目的IP地址
};
// 定義ping報文的報頭,共計8個字節
struct ICMPHeader
{
unsigned char type; // 8位類型,對于ping request該值為8,對于ping response該值為0
unsigned char code; // 8位代碼,對于ping報文,該值為0
unsigned short checksum; // 16位校驗和
unsigned short id; // 16位標識符
unsigned short sequenceNumber; // 16位序列號
};
// 該結構體用來保存Ping的統計信息
struct StatisticsRecord
{
long totalRequests; // 發出的Ping請求報文的總數
long totalResponses; // 收到的Ping響應報文的總數
long totalTime; // 總的往返時間
long maxTime; // 最長的往返時間
long minTime; // 最短的往返時間
};
// 該結構體用來檢測接收到的Ping響應報文,除roundTripTime以主機序存儲之外,其他字段均以網絡序存儲
struct PingRecord
{
unsigned long ipToPing;
unsigned short id;
unsigned short sequenceNumber;
long roundTripTime;
unsigned char ttl;
};
#pragma pack()
#endif // PACKETHEADER_H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -