C++ Builder NetMaster中的NMEcho控件来实现网络连接检测功能??咋不行呀

hubinlovemm hubinlovemm 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
首先定义以下控件:   
三个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;iLines->Count;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属性时自动进行的。
-------------------------------------
-------------------------------------
我是照上边写的
-----------------------------------



//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
NMEcho1->Host=Edit1->Text;
NMEcho1->TimeOut=StrToInt(Edit2->Text);
if(CheckBox1->Enabled)
{
NMEcho1->Port=StrToInt(Edit3->Text);
}
else
{
NMEcho1->Port=7;
}
NMEcho1->ReportLevel=Status_Basic;
NMEcho1->Connect(); //建立连接   
RichEdit2->Clear();
for(int i=0;i<RichEdit1->Lines->Count;i++)
//RichEdit1用于给远程主机发送信息   
RichEdit2->Text=RichEdit2->Text+NMEcho1->Echo(RichEdit1->Lines->Strings[0]);
NMEcho1->Disconnect();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMEcho1HostResolved(TComponent *Sender)
{
StatusBar1->Panels->Items[0]->Text="Host Resolved!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMEcho1InvalidHost(bool &Handled)
{
AnsiString s;
if(InputQuery("Invailid host!","Specify a new host:",s))
{
NMEcho1->Host=s;
Handled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMEcho1Connect(TObject *Sender)
{
StatusBar1->Panels->Items[0]->Text="Echo has connected host!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMEcho1ConnectionFailed(TObject *Sender)
{
ShowMessage("不能建立连接!");
}
//---------------------------------------------------------------------------
总是提示 ”不能建立连接“

不知是这文章不对还是俺错了
...全文

相关推荐

C++ Builder实现网络连接检测程序

Ping的实现过程很简单,该命令将引发IP层发送一个简单的IP包,一般是32字节。而目的方收到这个包后,将源地址和目的地址变换一下,重新发送这个包即可,当然还要加一些超时机制。其实,我们也可用C++ Builder NetMaster中的NMEcho控件来实现网络连接检测功能。   首先定义以下控件   三个Edit控件:一个用于接收远程主机的IP地址或域名,一个用于接收用户设置的超时机制的时间,一个用于设置端口号。   两个RichEdit控件:一个用于给远程主机发送信息,一个用于接收来自远程主机的信息。   两个CheckBox控件:用于用户是否自己设定端口号。   一个Butt

weixin_38606811

运营商大数据如何为企业精准推送客户

作为互联网服务的连接器和互联网信息的载体,三大运营商比OTT服务提供商对客户在网络技术应用中的个人行为和对消费者护理信息的掌握有更深入的了解。根据运营商大数据的完整性、可信度、多维性和一致性等优势,它可以更立体地描述客户。尤其是在进一步探索用户需求时,从运营商的大数据库中发现的用户价值越大,就越准确。

老周谈数据

运营商大数据怎么找到精准客户,看完这篇文章你就明白!

可监控任意网站、应用、400电话、固话、applet、关键字等,同时可筛选出地区、国家、省、市、性别、年龄、网站应用访问量、访问时长、400个电话、固定电话时长、通话次数等数据,实现行业间的精确匹配实现标签在不同行业的分布。相关企业可以通过搜集同行或者竞争对手的竞价网站链接,垂直于自身行业的手机App,同行竞争对手的400电话,固话咨询热线,短信号码,通过建模实时抓取访客,活跃用户,来电咨询者,短信接收人群数据,还可以通过地区,性别,年龄,访问次数,通话时长等维度,精准定位目标客户群体。

数方大数据

各行业怎么利用运营商大数据精准获客?怎么建模比较好?

怎么建模比较好?

浪浪的数据侠客

运营商大数据到底是不是真的?网上说的运营商大数据靠谱吗?

通过联通大数据可以对同行,竞争对手的平台进行建模实时分析和获取,如手机端的网站,网页,手机APP,400电话,固话,小程序,关键词等多平台进行多维度的数据分析。手机流量下访问网站的访客,使用APP的用户,拨打过相关400电话,固话咨询的客户等等,还可以筛选地域,年龄,性别,访问次数,通话时长等维度信息,精准定位目标客户群体。运营商大数据资料的精确性:运营商三网大数据营销,依据公司要求,针对领域特点一对一模型,伴随着网上总流量愈来愈贵,大数据营销是将来的发展前景,大幅度减少推广费用,减少失效沟通交流。

数方大数据
评论 2
收藏 已收藏
分享
返回顶部