用C Builder实现网络连接检测程式
2008-02-23 05:31:06来源:互联网 阅读 ()
Ping的实现过程很简单,该命令将引发IP层发送一个简单的IP包,一般是32字节。而目的方收到这个包后,将源地址和目的地址变换一下,重新发送这个包即可,当然还要加一些超时机制。
其实,我们也可用C Builder NetMaster中的NMEcho控件来实现网络连接检测功能。
首先定义以下控件:
三个Edit控件:一个用于接收远程主机的IP地址或域名,一个用于接收用户配置的超时机制的时间,一个用于配置端口号。
两个RichEdit控件:一个用于给远程主机发送信息,一个用于接收来自远程主机的信息。
两个CheckBox控件:用于用户是否自己设定端口号。
一个Button控件:用于执行测试。
一个StatusBar控件:用于显示应用程式的状态。
程式实现代码如下:
void __fastcall TForm1::Button1Click(TObject ?Sender)
{ //配置NMEcho控件的标准TCP/IP属性
NMEcho1-〉Host=Edit1-〉Text ;
NMEcho1-〉TimeOut=StrToInt(Edit2-〉Text) ;
if(CheckBox1-〉Checked)
NMEcho1-〉Port=StrToInt(Edit3-〉Text);
else
NMEcho1-〉Port=7;
//TCP/IP中Echo的默认端口号
NMEcho1-〉ReportLevel=Status_Basic;
NMEcho1-〉Connect(); //建立连接
RichEdit2-〉Clear ();
for(int i=0;i
//RichEdit1用于给远程主机发送信息
RichEdit2-〉Text=RichEdit2-〉Text NMEcho1-〉Echo(RichEdit1-〉Lines-〉
Strings[i]);
NMEcho1-〉Disconnect ();
}
注意:在调用NMEcho控件的Connect()方法时,应该确保在接收数据之前连接已建立。
当调用Connect()方法后,假如用户输入的是域地址而不是IP地址,且域名服务器成功地解析了这个域名,将触发控件的OnHostResoved事件,在此事件的处理中,我们将解析成功的消息在状态栏中显示给用户。具体实现代码如下:
void __fastcall TForm1::NMEcho1HostResolved(TComponent ?Sender)
{
StatusBar1-〉Panels-〉Items[0]-〉Text="Host Resolved!";
}
假如用户输入的远程主机不正确,将触发控件的OnInvalidHost事件,在此事件的处理中,弹出对话框需要用户重新输入远程主机的IP地址或域名地址,然后试图和服务器重建连接。具体代码如下:
void __fastcall TForm1::NMEcho1InvalidHost(bool &&Handled)
{
AnsiString s;
if(InputQuery("Invailid host!","Specify a new host:",s))
{
NMEcho1-〉Host=s;
Handled=true;
}
}
建立连接后,将触发控件的OnConnect事件,在此事件的处理中,我们将连接成功的消息在状态栏中显示给用户。具体实现代码如下:
void __fastcall TForm1::NMEcho1Connect(TObject ?Sender)
{
StatusBar1-〉Panels-〉Items[0]-〉Text="Echo has connected host!";
}
假如在调用Connect()方法后,在超时时间仍然没有和服务器连接,将触发控件的OnConnectFailed事件,在此事件的处理中,我们将连接失败的消息显示给用户。具体实现代码如下:
void __fastcall TForm1::NMEcho1ConnectionFailed(TObject ?Sender)
{
ShowMessage("Connection failed!");
}
除了NMEcho控件能够实现以上功能外,NetMaster的NMDayTime、NMTime这两个控件也能实现。方法和NMEcho控件相同,区别是NMDayTime和NMTime这两个控件不用首先调用Connect()方法,他们和服务器的连接是在使用DayTimeStr、TimeStr属性时自动进行的.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 掌控C Builder的调试艺术
下一篇: 在Unix下安装维护网卡
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash