知识大全 用Delphi打造图形界面的Ping程序

Posted 宿主

篇首语:虎不怕山高,鱼不怕水深。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Delphi打造图形界面的Ping程序相关的知识,希望对你有一定的参考价值。

用Delphi打造图形界面的Ping程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  摘 要 本文主要介绍利用Delphi 实现一个图形界面Ping程序的方法 其中主要讨论了ICMP协议和ICMP协议控件及其编程方法 并给出了一个实例程序 解决了Ping命令行程序的缺点   关键词 Delphi ICMP协议 Ping程序

  操作系统 Windows Server 中文版  编程工具 Delphi

  一 前言  在日常网络管理时 我们常用Ping命令来测试是否能与宿主(或路由)连通 但它一般是以命令行的形式提供给我们 不仅使用不方便 而且命令执行速度较快时 常常使我们看不清执行结果 那么 有没有办法来解决这个矛盾呢?答案当然是肯定的 下面 我们将利用Delphi强大的网络编程功能来实现一个图形化的Ping程序 程序的运行界面如图 所示

  程序的主要功能 在Address后的编辑框中可以输入一个计算机的名称或者IP地址 然后按Ping按钮或直接按回车可以测试与宿主计算机的连通性 如果连能正常 则在下面的列表框中显示宿主计算机的IP地址等信息 可以通过Clear功能按钮实现对列表框信息的清除   二 编程原理  ICMP(Internet Control Messages Protocol)是Internet信报控制协议的简写 它将报文放在一个IP数据报的数据部分中通过网络传送 该协议允许路由器向其它的路由器或者主机发送并且回收差错与控制报文 它为发生差错的路由器提供了向源端报告差错的功能 连通性测试程序Ping正是利用了ICMP协议的这种特性 通过向目的端(宿主)发送并且回收信报来测试端到端的连通性   Delphi 新增了Indy网络控件组 包括了几乎所有的网络协议控件 比如SMTP POP SNMP及ICMP等 避免了程序员直接与WinSocket打交道 大大方便了我们编写网络程序 Indy控件组分为Server和Clent两部分 以适应我们编写不同的服务器/工作站程序 我们可以很方便的在Indy Clent中找到ICMP协议控件TidIcmpClient   TidIcmpClient控件的常用属性如下   HOST 宿主计算机的IP地址 可以是计算机的名字或者IP地址   Port 表示接收报文的本地系统的端口号   ReceiveTimeout 表示连接等待宿主计算机回应的最大时间 单位是毫秒   TidIcmpClient控件的主要方法   Ping() 检测本地计算机与宿主计算机的连通性   TidIcmpClient控件的主要事件   OnICMPReply(ASender: TComponent; const AReplyStatus: TReplyStatus) 在本地计算机接收到宿主计算机回应时触发 回收消息放在对象AreplyStatus中   三 编程实现  下面我们就来制作一个图形界面的Ping程序    启动Delphi 打开一个新的标准工程 在窗体中添加所需的控件    首先向窗体顶端添加一个Panel控件 在其上再依次添加一个Label Edit和两个Button控件 并修改Button控件的标题为 Ping 和 Clear 然后再在Panel下面添加一个ListBox控件 最后再添加一个ICMP控件 并修改其名字属性为 ICMP 依次设置其他有关的属性等    Edit 控件是实现IP地址或者计算机名字的输入的 Button 则是实现Ping功能的 将其Default属性设为True 这样当用户按下回车键时 可以直接实现Ping功能 其主要的代码段如下 procedure TForm Button Click(Sender: TObject);vari : integer;beginICMP Host := Edit Text ; //宿主计算机的名称或IP地址ICMP ReceiveTimeout := ; //最大等待时间Button Enabled := false;tryfor i:= to do //重复 次beginICMP Ping ;Application ProcessMessages ; //延时end;finallyButton Enabled := true;end;end;   当本地计算机向宿主计算机发送一个数据包 当本地计算机接收到宿主计算机的信息时 会触发ICMPReply事件 可以在这个事件中实现对回收信息的显示或者差错等 其主要的代码段如下 procedure TForm ICMPReply(ASender: TComponent;const AReplyStatus: TReplyStatus);varsTime: string;begin//检测Ping的回复错误if (AReplyStatus MsRoundTripTime = ) thensTime := < elsesTime := = ;

cha138/Article/program/Delphi/201311/24975

相关参考

知识大全 利用浏览器实现程序界面与实现的分离

 引言  在用DelphiVisualBasic等可视化快速开发工具编写Windows应用程序时常会遇到这样几个问题    )希望程序界面美观在Delphi中开发人员通常使用各种控件来实现界面的风格化

知识大全 用Delphi制作录音程序

用Delphi制作录音程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Delphi是Inpr

知识大全 在JAVA中实现图形界面退出(已测试)

在JAVA中实现图形界面退出(已测试)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!import&

知识大全 用Delphi创建服务程序

小技巧:用Delphi创建服务程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Windows/X

知识大全 用Delphi编码实现程序自启动

用Delphi编码实现程序自启动  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一程序自启动的原

知识大全 Java图形界面事件监听处理之四种方法

Java图形界面事件监听处理之四种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我自年上大

知识大全 用Delphi编写打印程序的窍门

用Delphi编写打印程序的窍门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果你想自己用D

知识大全 用Delphi编写系统进程监控程序

用Delphi编写系统进程监控程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本程序通过调用ke

知识大全 用Delphi编制可自动升级程序

用Delphi编制可自动升级程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在编制了一个应用程

知识大全 用Delphi设计循环播放声音文件程序

用Delphi设计循环播放声音文件程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &