下面是个简单易学的Delphi编程实现Ping操作教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!
【 tulaoshi.com - 编程语言 】
在Delphi中使用TidIcmpClient控件可以非常简单的实现图形界面的Ping!interface
  uses
    Windows, Messages, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,
    SysUtils, Classes, IdIcmpClient, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
    Spin;
  
  type
    TfrmPing = class(TForm)
      lstReplies: TListBox;
      ICMP: TIdIcmpClient;
      Panel1: TPanel;
      btnPing: TButton;
      edtHost: TEdit;
      spnPing: TSpinEdit;
      Label1: TLabel;
      procedure btnPingClick(Sender: TObject);
      procedure ICMPReply(ASender: TComponent; const ReplyStatus: TReplyStatus);
    private
    public
    end;
  var
    frmPing: TfrmPing;
  implementation
  {$R *.DFM}
  procedure TfrmPing.btnPingClick(Sender: TObject);
  var
    i: integer;
  begin
    ICMP.OnReply := ICMPReply;
    ICMP.ReceiveTimeout := 1000;
    btnPing.Enabled := False; try
      ICMP.Host := edtHost.Text;
      for i := 1 to spnPing.Value do begin
        ICMP.Ping;
        Application.ProcessMessages;
      end;
    finally btnPing.Enabled := True; end;
  end;
  procedure TfrmPing.ICMPReply(ASender: TComponent; const ReplyStatus: TReplyStatus);
  var
    sTime: string;
  begin
    // TODO: check for error on ping reply (ReplyStatus.MsgType?)
    if (ReplyStatus.MsRoundTripTime = 0) then
      sTime := '1'
    else
      sTime := '=';
    lstReplies.Items.Add(Format('%d bytes from %s: icmp_seq=%d ttl=%d time%s%d ms',
      [ReplyStatus.BytesReceived,
      ReplyStatus.FromIpAddress,
      ReplyStatus.SequenceId,
      ReplyStatus.TimeToLive,
      sTime,
      ReplyStatus.MsRoundTripTime]));
  end;
end.
来源:http://www.tulaoshi.com/n/20160219/1617563.html
看过《Delphi编程实现Ping操作》的人还看了以下文章 更多>>