⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 用Delphi编写一个简单的PING工具
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
  IdIcmpClient;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    ListBox1: TListBox;
    icmp: TIdIcmpClient;
    procedure Button1Click(Sender: TObject);
    procedure icmpReply(ASender: TComponent;
      const AReplyStatus: TReplyStatus);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
{
首先我们设计下界面
加一些控件
写程序一定要记得经常保存,好习惯,万一出以外,你可就要
重新写了,所以要保存哦
我们加入刚才说的ICMP控件
在 Indy Client 面版上,我们把名字改成ICMP下面我们加入
代码.首先是发送的.

这里就完成了发送部分,但是我们需要得到信息是在ICMP返回的时候,
所以需要添加一个事件,就是他的返回事件,刚才我们写了的.
这样我们就可以得到需要的信息,比如时间等.ICMP控件有这个事件
我们来加入代码
}
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 i:integer;       //这里声明一个变量
begin
icmp.OnReply:=ICMPReply;      //这里设置他的返回函数.
icmp.ReceiveTimeout:=1000;    //设置超时的时间,1000为1秒(单位:MS)
button1.Enabled:=False;       //设置他为灰色不可用状态
Try                   //这个为异常语句,具体请看Delphi的语法书吧
 icmp.Host:=Edit1.Text;      //设置目标主机地址
 For i:=1 to 5 do
  begin         //这里发送5次
   icmp.Ping();       //发送即PING操作;
  end;
Finally //异常语句,大家不懂看书吧!
 Button1.Enabled:=True;      //少了个冒号呵呵,最近写VC写多了呵呵
End; //异常语句的结束
end;

procedure TForm1.icmpReply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
var
 info:String;//声明一个变量用来保存返回的信息并格式化
begin
//一般我们需要的信息都保存在AReplyStatus 这个记录
//结构里
//我们只需要调用就是了.下面我们加入代码.
//我们先看下标准的WINDOWS自带那个PING程序返回的信息,我们模仿他
//格式:Reply from 192.168.5.10: bytes=32 time<1ms TTL=255
info:=(Format('Reply From %s: bytes=%d time=%dms TTL=%d',
[AReplyStatus.FromIpAddress,AReplyStatus.BytesReceived,
AReplyStatus.MsRoundTripTime,AReplyStatus.TimeToLive]));
//以上就是我们把信息格式化后保存在info这个变量里,Format语句大家不熟悉的话
//推荐去网上查下,因为篇幅有限呵呵,VC和C++这些语言里经常会用到
//不废话了下面我们只需要把这个信息在ListBox中显示出来就可以了
ListBox1.Items.Add(info);//加入进去
//好了,现在我们的程序就完成了呵呵,我们测试下!
end;

end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -