Delphi编程实现Ping操作

京宝

京宝

2016-02-19 18:24

下面是个简单易学的Delphi编程实现Ping操作教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!
在Delphi中使用TidIcmpClient控件可以非常简单的实现图形界面的Ping!
  新建一个工程,命名为PingGUI.dpr,窗口命名为“frmPing”,加入如下组件:
      lstReplies: TListBox;
      ICMP: TIdIcmpClient;
      Panel1: TPanel;
      btnPing: TButton;
      edtHost: TEdit;
      spnPing: TSpinEdit;
      Label1: TLabel;
  
  完整源代码如下:
  unit Main;

  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;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  end.

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

Delphi编程实现Ping操作

编程语言 网络编程
Delphi编程实现Ping操作

delphi编程实现改变操作系统日期

编程语言 网络编程
delphi编程实现改变操作系统日期

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

delphi编程实现检测声卡存在

编程语言 网络编程
delphi编程实现检测声卡存在

delphi编程实现动态创建别名

编程语言 网络编程
delphi编程实现动态创建别名

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

如何在Delphi中实现ASP编程

Delphi
如何在Delphi中实现ASP编程

delphi编程实现在Word插入字符

编程语言 网络编程
delphi编程实现在Word插入字符

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

发掘ListBox的潜力(二):鼠标拖放插入点提示

发掘ListBox的潜力(二):鼠标拖放插入点提示

Win7让电脑“打盹”的N种方式

Win7让电脑“打盹”的N种方式
下拉加载更多内容 ↓