C++ Biulder 案例展示 FastNet 网络控件,支持域名不支持IP

16 篇文章 0 订阅

C++ Biulder 案例展示:主机Host支持域名,不支持IP地址。

DNS服务器:可以把域名解析为IP地址

C++ Biulder 安装包里的案例文件:D:\CBuilder5\Examples\FastNet\Echo

编译前后文件对比:Echodemo编译前7个文件,编译后增加了8个文件,包含*.exe应用程序

界面文件Form 如下:文本显示、按键 Button、编辑框

注意:这里的Host需要输入域名不支持IP地址

NMEcho控件的7个事件:

        1)OnConnect 连接事件

        2)OnConnectionFailed 连接失败事件

        3)OnConnectionRequired 连接请求事件

        4)OnDisconnect 取消连接事件

        5)OnHostResolved 解析主机(域名--->IP)

        6)OnInvalidHost 主机名无效

        7)OnStatus 状态

例程代码:

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

#include <vcl.h>

#pragma hdrstop

#include "echomain.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TFormMain *FormMain;

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

__fastcall TFormMain::TFormMain(TComponent* Owner)

        : TForm(Owner)

{

}

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

void __fastcall TFormMain::NMEcho1Connect(TObject *Sender)

{

  StatusBar1->SimpleText = "Connected";       

}

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

void __fastcall TFormMain::NMEcho1ConnectionFailed(TObject *Sender)

{

  ShowMessage("Connection Failed");       

}

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

void __fastcall TFormMain::NMEcho1ConnectionRequired(bool &handled)

{

  AnsiString BoxCaption;

  AnsiString BoxMsg;

  BoxCaption = "Connection Required";

  BoxMsg = "Connection Required. Connect?";

  if (MessageBox(0, &BoxMsg[1], &BoxCaption[1], MB_YESNO + MB_ICONEXCLAMATION) == IDYES)

  {

    handled = true;

    Button2Click(this);

  }

}

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

void __fastcall TFormMain::Button2Click(TObject *Sender)

{

  NMEcho1->ReportLevel = Status_Basic;

  NMEcho1->TimeOut = 20000;

  NMEcho1->Host = Edit2->Text;

  NMEcho1->Port = StrToInt(Edit3->Text);

  NMEcho1->Connect();

}

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

void __fastcall TFormMain::Button3Click(TObject *Sender)

{

  NMEcho1->Disconnect();       

}

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

void __fastcall TFormMain::Button1Click(TObject *Sender)

{

  Edit4->Text = NMEcho1->Echo(Edit1->Text);

  Label2->Caption = "Elapsed Time: "+FloatToStr(NMEcho1->ElapsedTime)+" milliseconds";

}

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

void __fastcall TFormMain::Button4Click(TObject *Sender)

{

  NMEcho1->Abort();

}

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

void __fastcall TFormMain::NMEcho1Disconnect(TObject *Sender)

{

  if (StatusBar1 != 0)

    StatusBar1->SimpleText = "Disconnected";       

}

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

void __fastcall TFormMain::NMEcho1HostResolved(TComponent *Sender)

{

  StatusBar1->SimpleText = "Host resolved";

}

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

void __fastcall TFormMain::NMEcho1InvalidHost(bool &handled)

{

  AnsiString NewHost;

  if (InputQuery("Invalid Host", "Please Choose another host", NewHost))

  {

    NMEcho1->Host = NewHost;

    handled = true;

  }

}

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

void __fastcall TFormMain::NMEcho1Status(TComponent *Sender,

      AnsiString Status)

{

  if (StatusBar1 != 0)

    StatusBar1->SimpleText = Status;       

}

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

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "echomain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::NMEcho1Connect(TObject *Sender)
{
  StatusBar1->SimpleText = "Connected";        
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::NMEcho1ConnectionFailed(TObject *Sender)
{
  ShowMessage("Connection Failed");        
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::NMEcho1ConnectionRequired(bool &handled)
{
  AnsiString BoxCaption;
  AnsiString BoxMsg;
  BoxCaption = "Connection Required";
  BoxMsg = "Connection Required. Connect?";
  if (MessageBox(0, &BoxMsg[1], &BoxCaption[1], MB_YESNO + MB_ICONEXCLAMATION) == IDYES)
  {
    handled = true;
    Button2Click(this);
  }
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Button2Click(TObject *Sender)
{
  NMEcho1->ReportLevel = Status_Basic;
  NMEcho1->TimeOut = 20000;
  NMEcho1->Host = Edit2->Text;
  NMEcho1->Port = StrToInt(Edit3->Text);
  NMEcho1->Connect();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Button3Click(TObject *Sender)
{
  NMEcho1->Disconnect();        
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Button1Click(TObject *Sender)
{
  Edit4->Text = NMEcho1->Echo(Edit1->Text);
  Label2->Caption = "Elapsed Time: "+FloatToStr(NMEcho1->ElapsedTime)+" milliseconds";
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Button4Click(TObject *Sender)
{
  NMEcho1->Abort();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::NMEcho1Disconnect(TObject *Sender)
{
  if (StatusBar1 != 0)
    StatusBar1->SimpleText = "Disconnected";        
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::NMEcho1HostResolved(TComponent *Sender)
{
  StatusBar1->SimpleText = "Host resolved";
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::NMEcho1InvalidHost(bool &handled)
{
  AnsiString NewHost;
  if (InputQuery("Invalid Host", "Please Choose another host", NewHost))
  {
    NMEcho1->Host = NewHost;
    handled = true;
  }
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::NMEcho1Status(TComponent *Sender,
      AnsiString Status)
{
  if (StatusBar1 != 0)
    StatusBar1->SimpleText = Status;        
}
//---------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢奕冰2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值