电竞比分网-中国电竞赛事及体育赛事平台

分享

Delphi中用Socket API實現(xiàn)PING

 獨孤求財 2012-03-21

Delphi中用Socket API實現(xiàn)PING

時間:2011-6-2來源:yang 作者: peng點擊: 181次
PING無非是向遠程主機發(fā)送一個ICMP包,如果給定時間內沒有接收到回應就認為是超時,如果收到回應則分析接收到的ICMP包,得到TTL、類型以及用時。
unit YRecords;
interface
uses
  Windows;
const
  ICMP_ECHO       = 8;
  ICMP_ECHOREPLY  = 0;
  ICMP_MIN        = 8;
  PACKET_SIZE     = 32;
  MAX_PACKET_SIZE = 512;
  MAX_IP_HDR_SIZE = 60;
type
  s32     = Integer;
  u32     = DWORD;
  u8      = Byte;
  u16     = word;       PU16 = ^U16;
  //
  //IP Packet Header
  //
  PIPHeader = ^YIPHeader;
  YIPHeader = record
    u8verlen    : u8;//4bits ver, 4bits len, len*4=true length
    u8tos       : u8;//type of service, 3bits 優(yōu)先權(現(xiàn)在已經被忽略), 4bits TOS, 最多只能有1bit為1
    u16totallen : u16;//整個IP數據報的長度,以字節(jié)為單位。
    u16id       : u16;//標識主機發(fā)送的每一份數據報    
    u16offset   : u16;//3bits 標志,13bits片偏移
    u8ttl       : u8;//生存時間字段設置了數據報可以經過的最多路由器數。
    u8protol    : u8;//協(xié)議類型,6表示傳輸層是TCP協(xié)議。
    u16checksum : u16;//首部檢驗和    
    u32srcaddr  : u32;//源IP地址,不是‘xxx.xxx.xxx.xxx’的形勢哦
    u32destaddr : u32;//目的IP地址,同上
  end;
  //
  //ICMP Packet Header
  //
  PICMPHeader = ^YICMPHeader;
  YICMPHeader = record
    u8type      : u8;
    u8code      : u8;
    u16chksum   : u16;
    u16id       : u16;
    u16seq      : u16;
  end;
 源碼下載
.

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多