国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Delphi > 正文

Delphi編程實現(xiàn)Ping操作

2019-11-18 19:00:45
字體:
供稿:網(wǎng)友
Delphi編程實現(xiàn)Ping操作
  張?zhí)┝?

  使用過網(wǎng)絡(luò)的用戶都熟悉“Ping”這個指令,它是一個DOS下的可執(zhí)行文件,一般用它來檢查網(wǎng)絡(luò)連接的好壞程度。其基本原理是利用TCP/ip協(xié)議包中ICMP協(xié)議中的一個功能,即向所指定的計算機(jī)發(fā)送一個請求,收到請求的計算機(jī)返回一個應(yīng)答,借此來判斷該計算機(jī)是否在網(wǎng)上運行或者檢查網(wǎng)絡(luò)連接是否穩(wěn)定可靠。在Ping程序執(zhí)行過程中,雙方計算機(jī)所耗費的資源都很少,因此,它是一個非常實用的工具。

  我們可以通過編程來實現(xiàn)“Ping”操作,對其加以改進(jìn),使之具有Windows的界面風(fēng)格,顯示比DOS更加直觀。

  首先,對編程中需要的動態(tài)鏈接庫作一簡要說明:在Windows的System目錄下,你可以找到Icmp.dll文件,該動態(tài)鏈接庫提供了ICMP協(xié)議的所有功能,我們的編程就建立在對該動態(tài)鏈接庫的調(diào)用上。

  Icmp.dll文件內(nèi)的調(diào)用函數(shù)說明如下:

  1、IcmpCreateFile

  打開一個句柄,通過該句柄你可以發(fā)送ICMP的請求回送報文。

  2、IcmpCloseHandle

  關(guān)閉你通過IcmpCreateFile函數(shù)打開的句柄。

  3、IcmpSendEcho

  通過你打開的句柄發(fā)送ICMP請求,在超時或應(yīng)答報文接收后返回。其參數(shù)基本上和它的幀結(jié)構(gòu)一致,可參看下面的程序部分,其具體含意你可以參看有關(guān)ICMP協(xié)議的書籍。

  初步了解了上述的三個函數(shù)后,我們就可以開始編程了。

  首先,我們的程序運行后應(yīng)該有如圖1所示的基本功能。為此,我們可先在Delphi的窗口中放入右上圖中所示的控件,如按鈕、編輯框和文本顯示框等。

  (G72.JPG)

  例程運行示意圖

  然后,在程序的開始部分(FormCreate)對WinSocket進(jìn)行初始化,其作用是申明使用的版本信息,同時調(diào)入Icmp.dll庫。

  type

   PIPOptionInformation = ^TIPOptionInformation;

   TIPOptionInformation = packed record

   TTL: Byte;

   TOS: Byte;

   Flags: Byte;

   OptionsSize: Byte;

   OptionsData: PChar;

   end;

   PIcmpEchoReply = ^TIcmpEchoReply;

   TIcmpEchoReply = packed record

   Address: DWord;

   Status: DWORD;

   RTT: DWORD;

   DataSize: Word;

   Reserved: Word;

   Data: Pointer;

   Options: TIPOptionInformation;

   end;

   TIcmpCreateFile = function: THandle; stdcall;

   TIcmpCloseHandle = function(IcmpHandle: THandle): Boolean; stdcall;

   TIcmpSendEcho = function(IcmpHandle:THandle;

   DestinationAddress: DWORD;

   RequestData: Pointer;

   RequestSize: Word;

   RequestOptions: PIPOptionInformation;

   ReplyBuffer: Pointer;

   ReplySize: DWord;

   Timeout: DWord

   ): DWord; stdcall;

   TMyPing = class(TForm)

   Panel1: TPanel;

   Label1: TLabel;

   PingEdit: TEdit;

   ExeBtn: TButton;

   Button2: TButton;

   Button3: TButton;

   StatusShow: TMemo;

   PRocedure Button3Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

   procedure ExeBtnClick(Sender: TObject);

   private

   { Private declarations }

   hICMP: THANDLE;

   IcmpCreateFile : TIcmpCreateFile;

   IcmpCloseHandle: TIcmpCloseHandle;

   IcmpSendEcho: TIcmpSendEcho;

   public

   { Public declarations }

  end;

  procedure TMyPing.FormCreate(Sender: TObject);

  var

   WSAData: TWSAData;

   hICMPdll: HMODULE;

  begin

   WSAStartup($101, WSAData);

   // Load the icmp.dll stuff

   hICMPdll := LoadLibrary('icmp.dll');

   @ICMPCreateFile := GetProcAddress(hICMPdll, 'IcmpCreateFile');

   @IcmpCloseHandle := GetProcAddress(hICMPdll, 'IcmpCloseHandle');

   @IcmpSendEcho := GetProcAddress(hICMPdll, 'IcmpSendEcho');

   hICMP := IcmpCreateFile;

   StatusShow.Text := ';

   StatusShow.Lines.Add('目的IP地址 字節(jié)數(shù) 返回時間(毫秒)');

  end;

  接下來,就要進(jìn)行如下所示的Ping操作的實際編程過程了。

  procedure TMyPing.ExeBtnClick(Sender: TObject);

  var

   IPOpt:TIPOptionInformation;// IP Options for packet to send

   FIPAddress:DWORD;

   pReqData,pRevData:PChar;

   pIPE:PIcmpEchoReply;// ICMP Echo reply buffer

   FSize: DWORD;

   MyString:string;

   FTimeOut:DWORD;

   BufferSize:DWORD;

  begin

   if PingEdit.Text <> ' then

   begin

   FIPAddress := inet_addr(PChar(PingEdit.Text));

   FSize := 40;

   BufferSize := SizeOf(TICMPEchoReply) + FSize;

   GetMem(pRevData,FSize);

   GetMem(pIPE,BufferSize);

   FillChar(pIPE^, SizeOf(pIPE^), 0);

   pIPE^.Data := pRevData;

   MyString := 'Hello,World';

   pReqData := PChar(MyString);

   FillChar(IPOpt, Sizeof(IPOpt), 0);

   IPOpt.TTL := 64;

   FTimeOut := 4000;

   IcmpSendEcho(hICMP, FIPAddress, pReqData, Length(MyString), @IPOpt, pIPE, BufferSize, FTimeOut);

   if pReqData^ = pIPE^.Options.OptionsData^ then

   begin

   StatusShow.Lines.Add(PChar(PingEdit.Text) + ' ' +IntToStr(pIPE^.DataSize) + ' ' +IntToStr(pIPE^.RTT));

   end;

   FreeMem(pRevData);

   FreeMem(pIPE);

   end

  end;

  通過上面的編程,我們就實現(xiàn)了Ping功能的界面操作。實際上,ICMP協(xié)議的功能還有很多,都可以通過對Icmp.dll的函數(shù)調(diào)用來實現(xiàn)。

上一篇:通用Delphi數(shù)據(jù)庫輸入控件DBPanel的實現(xiàn)

下一篇:用Delphi實現(xiàn)遠(yuǎn)程屏幕抓取

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
影音先锋在线中文字幕| 亚洲电影先锋| 青青草视频在线免费观看| 国产女王在线**视频 | 一本大道香蕉久久| 国产偷窥老熟盗摄视频| 一本久中文高清| 69视频在线| 高清av在线| 国产男女猛烈无遮挡免费视频| 亚洲夜夜综合| 四虎a级欧美在线观看| 一本大道五月香蕉| 亚洲激情丁香| 日韩a视频在线观看| 夜夜操天天干| av高清资源| 日韩国产成人| 超碰免费在线观看| 久草视频国产| 懂色av一区| 91caoporn在线| 中文字幕专区| 国产成a人亚洲精v品| 中文字幕日本在线| 国产麻豆一级片| 国产三线在线| 国产www在线观看| 99久久精品免费观看国产| 精品国产一区二区三区不卡在线 | 国产特黄在线| 91精品国产高久久久久久五月天| 精品麻豆国产| www.三级.com| 国产一级片麻豆| 最新中文字幕在线| 在线观看精品视频一区二区三区| 在线观看免费黄色| 久久亚洲国产成人亚| 国产一二三区精品视频| 亚洲综合色视频在线观看| jlzzjlzz欧美大全| 国产资源在线看| 国产国产国产国产国产国产| 日本电影全部在线观看网站视频| 成人欧美亚洲| 国产精品国精产品一二| www.av在线播放| 69免费视频| 国产又色又爽又黄刺激在线视频| 精品视频麻豆入口| 最新黄网在线观看| jizz在线视频| 中文天堂av| 中文字幕网在线| 青青草原国产在线观看| 69视频在线| 国产第一页在线| 国产午夜视频在线观看| 高潮白浆视频| 九九热视频在线观看| 亚洲а∨精品天堂在线| 国产jizz| 91久久麻豆| 在线一区二区三区精品| 国产三线在线| 国产日韩欧美精品一区二区三区 | 精品无人乱码| 国产午夜精品一区理论片| 亚洲欧美日韩成人网| 96久久久久久| 国产网站免费观看| 高潮毛片在线观看| 中文字幕在线视频网| 国产视频三级在线观看播放| 自拍亚洲国产| 国产激情小视频在线| 国产黄色高清在线| 尤物在线精品视频| 碰草在线视频| 导航福利在线| 国产美女福利在线观看| 成人欧美亚洲| 国产黄色在线播放| 性色视频在线| 超碰在线免费播放| 国产精品自拍在线观看| 最近中文字幕mv免费高清电影| 久久久久久国产视频| 91sp网站在线观看入口| 日韩av成人| 91在线最新| 男女午夜视频在线观看| 国产美女被草| 精灵使的剑舞无删减版在线观看| av一级在线| 成人免费一区二区三区牛牛| 国产小视频免费在线观看| 精品无吗乱吗av国产爱色| 牛牛热在线视频| 国产黄在线观看| 久艹在线视频| 夜夜嗨yeyeh| 国产一区二区三区美女秒播| 中文字幕一区免费| 在线视频观看你懂的| 国产中文伊人| 国产对白在线| 五月天丁香在线| 麻豆视频国产| 亚洲高清在线免费| 国产精品久久久久久福利| 九九精品九九| 青青草观看免费视频在线| 国产日产精品久久久久久婷婷| 伊人222成人综合网| 18av在线视频| 最新中文字幕在线视频| 久久99国产视频| 四虎a级欧美在线观看| 中文在线视频观看| 国产精品剧情一区二区三区| 天堂中文字幕在线| 中文字幕在线免费看| www网站在线观看| 国产成人无吗| 在线视频观看你懂的| 在线视频福利| 精品伦理一区二区| 国产a级网站| 91视频黄色| 在线āv视频| 免费观看久久久久| 激情综合丁香| 中文字幕日本在线| 国产精品你懂的在线观看| 91av资源在线| 午夜国产视频| 国产激情视频一区二区| 伊人网在线观看| 欧美亚洲天堂| 国产视频二区| 99精品老司机免费视频| www.毛片| 国产精品剧情一区二区三区| 精精国产xxxx视频在线中文版| 精品卡一卡卡2卡3网站| gogo在线高清视频| 尤物在线网址| 精品国内一区二区三区免费视频| 精品美女调教视频| 久久久久久久久久久久久91| 国产一级免费看| 亚洲成人av在线影院| 国产精选在线观看| 中文国产字幕在线观看| 丁香在线视频| 在线观看精品一区二区三区| 久草网在线视频| 国产99在线|亚洲| 国产在线视频网站| 在线观看电影av| 中文字幕有码在线视频| h网站免费在线观看| 国产精美视频| 中文字幕在线视频免费观看| 在线视频色在线| 国产三区视频在线观看| 国产在线视频网站| 一本久久精品| 国产盗摄一区二区| 黄色国产网站在线播放| 一级黄色av| 中文岛国精品亚洲一区| 国产一二区在线| 国产精品一区在线看| eeuss影院在线播放| 国产成人综合美国十次| 中文字幕亚洲精品视频| 懂色一区二区三区| 激情视频国产| 麻豆精品免费视频入口| 伊人色综合网| 日本在线天堂| 欧美日韩**字幕一区| 亚洲成av人影片在线观看| 91看片在线观看| 在线国产福利网站| www.国产精| 久草福利资源在线视频| jizz在线免费观看| 九九精品九九| 国产一级激情| 精品福利视频导航大全| av网站大全在线观看| 日本一本久久| 成年人在线观看| 国产卡二和卡三的视频| 国产精品区一区二| 在线观看免费高清完整|