通過C 實現網路連線檢測程式

2021-09-01 18:01:39 字數 1489 閱讀 7501

廣州達內作為達內集團60多家培訓中的乙個,已成為了廣州it培訓的領頭羊,通過標準化的培訓,讓實戰少的學生完美蛻變成為軟體開發職場精英人才,成功幫助學員收穫名企offer。

在windows系統中,我們經常用ping.exe來測試網路的連通性。

ping的實現過程很簡單,該命令將引發ip層傳送乙個簡單的ip包,一般是32位元組。而目的方收到這個包後,將源位址和目的位址變換一下,重新傳送這個包即可,當然還要加一些超時機制。

其實,我們也可用c++ builder netmaster中的nmecho控制項來實現網路連線檢測功能。

首先定義以下控制項:

兩個richedit控制項:乙個用於給遠端主機傳送資訊,乙個用於接收來自遠端主機的資訊。

兩個checkbox控制項:用於使用者是否自己設定埠號。

乙個button控制項:用於執行測試。

乙個statusbar控制項:用於顯示應用程式的狀態。

程式實現**如下:

void __fastcall tform1::button1click(tobject   ender)

注意:在呼叫nmecho控制項的connect()方法時,應該確保在接收資料之前連線已經建立。

當呼叫connect()方法後,如果使用者輸入的是域位址而不是ip位址,且網域名稱伺服器成功地解析了這個網域名稱,將觸發控制項的onhostresoved事件,在此事件的處理中,我們將解析成功的訊息在狀態列中顯示給使用者。具體實現**如下:

void __fastcall tform1::nmecho1hostresolved(tcomponent   ender)

如果使用者輸入的遠端主機不正確,將觸發控制項的oninvalidhost事件,在此事件的處理中,彈出對話方塊要求使用者重新輸入遠端主機的ip位址或網域名稱位址,然後試圖與伺服器重建連線。具體**如下:

void __fastcall tform1::nmecho1invalidhost(bool &&handled)

}建立連線後,將觸發控制項的onconnect事件,在此事件的處理中,我們將連線成功的訊息在狀態列中顯示給使用者。具體實現**如下:

void __fastcall tform1::nmecho1connect(tobject   ender)

如果在呼叫connect()方法後,在超時時間仍然沒有與伺服器連線,將觸發控制項的onconnectfailed事件,在此事件的處理中,我們將連線失敗的訊息顯示給使用者。具體實現**如下:

void __fastcall tform1::nmecho1connectionfailed(tobject   ender)

除了nmecho控制項可以實現以上功能外,netmaster的nmdaytime、nmtime這兩個控制項也能實現。方法與nmecho控制項一樣,區別是nmdaytime和nmtime這兩個控制項不用首先呼叫connect()方法,它們與伺服器的連線是在使用daytimestr、timestr屬性時自動進行的.

知識就是力量,別人學用知識來賺錢的成本低,在達內學習到程式設計是鑄造夢想的地方,如果你喜歡程式設計,這裡,有我們共同語言,共同的故事,共同的夢想!

C Builder實現網路連線檢測程式

ping的實現過程很簡單,該命令將引發ip層傳送乙個簡單的ip包,一般是32位元組。而目的方收到這個包後,將源位址和目的位址變換一下,重新傳送這個包即可,當然還要加一些超時機制。其實,我們也可用c builder netmaster中的nmecho控制項來實現網路連線檢測功能。首先定義以下控制項 三...

Android 檢測網路連線狀態

檢測是否接入網際網路 connectivitymanager cm connectivitymanager context.getsystemservice context.connectivity service networkinfo activenetwork cm.getactivenetw...

IOS檢測網路連線狀態

然後將reachability.h 和 reachability.m 加到自己的專案中,並引用systemconfiguration.framework,就可以使用了。reachability 中定義了3種網路狀態 the network state of the device for reacha...