六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用C++ Builder完成網絡連接檢測程序

[摘要]在Windows系統中,我們經常用Ping.exe來測試網絡的連通性。   Ping的實現過程很簡單,該命令將引發IP層發送一個簡單的IP包,一般是32字節。而目的方收到這個包后,將源地址和目的地址變換一下,重新發送這個包即可,當然還要加一些超時機制。   其實,我們也可用C++ Builder ...
在Windows系統中,我們經常用Ping.exe來測試網絡的連通性。

  Ping的實現過程很簡單,該命令將引發IP層發送一個簡單的IP包,一般是32字節。而目的方收到這個包后,將源地址和目的地址變換一下,重新發送這個包即可,當然還要加一些超時機制。

  其實,我們也可用C++ Builder NetMaster中的NMEcho控件來實現網絡連接檢測功能。

  首先定義以下控件:

  三個Edit控件:一個用于接收遠程主機的IP地址或域名,一個用于接收用戶設置的超時機制的時間,一個用于設置端口號。

  兩個RichEdit控件:一個用于給遠程主機發送信息,一個用于接收來自遠程主機的信息。

  兩個CheckBox控件:用于用戶是否自己設定端口號。

  一個Button控件:用于執行測試。

  一個StatusBar控件:用于顯示應用程序的狀態。

  程序實現代碼如下:

  void __fastcall TForm1::Button1Click(TObject   ender)

  { //設置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   ender)

  {

   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   ender)

  {

   StatusBar1-〉Panels-〉Items[0]-〉Text="Echo has connected host!";

    }

  如果在調用Connect()方法后,在超時時間仍然沒有與服務器連接,將觸發控件的OnConnectFailed事件,在此事件的處理中,我們將連接失敗的消息顯示給用戶。具體實現代碼如下:

  void __fastcall TForm1::NMEcho1ConnectionFailed(TObject   ender)

  {

  ShowMessage("Connection failed!");    

  }

  除了NMEcho控件可以實現以上功能外,NetMaster的NMDayTime、NMTime這兩個控件也能實現。方法與NMEcho控件一樣,區別是NMDayTime和NMTime這兩個控件不用首先調用Connect()方法,它們與服務器的連接是在使用DayTimeStr、TimeStr屬性時自動進行的.


主站蜘蛛池模板: 中文在线最新版天堂8 | 午夜影院亚洲 | 欧美在线一 | 四虎影视在线免费观看 | 四虎精品影院在线观看视频 | 午夜在线一区 | 特黄大片aaaaa毛片 | 亚洲网站免费看 | 日本高清视频成人网www | 亚洲综合色婷婷六月丁香 | 人人公开免费超级碰碰碰视频 | 日韩视频在线一区 | 日本网址在线观看 | 青青草原免费在线视频 | 欧美在线观看黄色 | 亚洲国产精品欧美日韩一区二区 | 午夜免费啪视频观看网站 | 天天色综合图片 | 桃花视频全免费观看韩国 | 四虎成年永久免费网站 | 一二三四在线观看免费高清网 | 午夜国产精品福利在线观看 | 亚洲爱视频| 无码日韩精品一区二区免费 | 欧美特黄一区二区三区 | 日本高清视频一区二区 | 四虎影视库国产精品一区 | 在线播放国产一区二区三区 | 一区二区视频网 | 日韩免费精品一级毛片 | 午夜爱爱免费视频 | 青娱极品盛宴国产精品分类 | 日本视频在线 | 四虎国产永久免费久久 | 欧美视频免费在线播放 | 日韩a无v码在线播放免费 | 四虎一区二区三区 | 婷婷色吧 | 影音先锋亚洲综合小说在线 | 清清草视频 | 日韩中文字幕网 |