導航:首頁 > 異常信息 > c判斷網路是否連接

c判斷網路是否連接

發布時間:2022-02-07 10:35:48

① 如何編寫一個判斷當前網路連接狀態的C/C++函數

用DOS命令 netstat 轉向 到文件,再讀文件,分析內容。
netstat 有一些選項,根據你的需要可以選設。

system("netstat -a > my_net.dat");
打開 my_net.dat
讀文件,分析內容。

netstat 用法在命令窗 打
netstat /?
查看。

② c++怎麼檢查網路連接狀態

做人要謙虛, 沒有認真看別人的回答就在這里亂叫, 太天真了

③ c語言如何檢測網路是否連接

1、如果對方斷開連接的話,那麼readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值應該是0,可以根據返回值判斷。
2、recv函數返回值說明
recv函數
int recv( SOCKET s, char FAR *buf, int len, int flags);
不論是客戶還是伺服器應用程序都用recv函數從TCP連接的另一端接收數據。該函數的第一個參數指定接收端套接字描述符; 第二個參數指明一個緩沖區,該緩沖區用來存放recv函數接收到的數據; 第三個參數指明buf的長度; 第四個參數一般置0。
這里只描述同步Socket的recv函數的執行流程。當應用程序調用recv函數時,
(1)recv先等待s的發送緩沖中的數據被協議傳送完畢,如果協議在傳送s的發送緩沖中的數據時出現網路錯誤,那麼recv函數返回SOCKET_ERROR,
(2)如果s的發送緩沖中沒有數據或者數據被協議成功發送完畢後,recv先檢查套接字s的接收緩沖區,如果s接收緩沖區中沒有數據或者協議正在接收數 據,那麼recv就一直等待,直到協議把數據接收完畢。當協議把數據接收完畢,recv函數就把s的接收緩沖中的數據到buf中(注意協議接收到的數據可能大於buf的長度,所以 在這種情況下要調用幾次recv函數才能把s的接收緩沖中的數據完。recv函數僅僅是數據,真正的接收數據是協議來完成的), recv函數返回其實際的位元組數。如果recv在時出錯,那麼它返回SOCKET_ERROR;如果recv函數在等待協議接收數據時網路中斷了,那麼它返回0。 默認 socket 是阻塞的 解阻塞與非阻塞recv返回值沒有區分,都是 <0 出錯 =0 連接關閉 >0 接收到數據大小,
特別:返回值<0時並且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情況下認為連接是正常的,繼續接收。只是阻塞模式下recv會阻塞著接收數據,非阻塞模式下如果沒有數據會返回,不會阻塞著讀,因此需要循環讀取)。
返回說明: 成功執行時,返回接收到的位元組數。另一端已關閉則返回0。失敗返回-1,errno被設為以下的某個值 EAGAIN:套接字已標記為非阻塞,而接收操作被阻塞或者接收超時 EBADF:sock不是有效的描述詞 ECONNREFUSE:遠程主機阻絕網路連接 EFAULT:內存空間訪問出錯 EINTR:操作被信號中斷 EINVAL:參數無效 ENOMEM:內存不足 ENOTCONN:與面向連接關聯的套接字尚未被連接上 ENOTSOCK:sock索引的不是套接字 當返回值是0時,為正常關閉連接;
思考:當對側沒有send,即本側的套接字s的接收緩沖區無數據,返回值是什麼(EAGAIN,原因為超時,待測)

④ C++ 請問怎樣判斷是否斷網

應該是游戲本身出了問題,或者你重裝一下
vc++
運行庫,dnf應該是vc++
編寫的所以必須要哪個,如果那個出問題是沒法運行的,本人沒玩過dnf,所以只能根據你的描述判斷了,不過我建議你還是重新裝游戲靠譜點

⑤ 檢測網路是否連通

1.
例如想檢測一個網路下的另一台電腦是否連通網路,那麼首先要查到對方的 IP。查 IP
的方法前面我們已經講過了,這里假設已知另一台電腦的IP 是192.168.1.202.
那麼檢測方法就是:開始「-」運行「,輸入CMD,在彈出的DNS 窗口中輸入
Ping 192.168.1.202 –T(加參數-T 是連續ping 的意思,也可以不加。)
如果出現上圖中的數據,說明另一台電腦是連通區域網的。
如果出現上圖中的數據,說明另一台電腦是連不通網路的。
2. 檢測網路是否正常
在開始-運行,那裡輸入「cmd」 。進入 DOS 窗口。在 DOS 窗口中輸入 ping
202.96.134.134 –t (註:我ping 的這個地址是深圳電信的DNS 伺服器。大家可根據客戶
這個ping 窗口運行一段時間後,想得到結果,方法:按下鍵盤的「Ctrl"鍵,再按「C」。
就可以得到結果:丟包個數,丟包率,最大延時,最小延時和平均延時。
說明:1、SENT= 這是你共PING 多少個包;
2、RECEIVED= 這是正常的包;
3、LOST=0 (0% LOSS) 這是丟包的個數和丟包率;
4、MINIMUM =329MS ,MAXIMUM=619MS AVERAGE=379MS 這分別是最小,
最大和平均延時。
我們著重注意二個數據。一個是LOST。就是丟包數和丟包率。丟包在屏幕上的顯示是:
Requested time out。第二個是延時。屏幕上顯示的是 time=344ms,這個344 就代
表你的網路速度。此數值是不斷變化的,數值越小網路環境越好,一般延時的正常數值穩
在上圖中我的網路環境就很差。延時在300-600 之間。並且丟包嚴重,丟包率達到35%

⑥ C語言關於socket中如何判斷客戶端是否與伺服器保持連接

寫失敗之後獲取錯誤值會告訴你錯誤原因,是網路斷了還是怎麼樣。
再一個如果遠程關閉連接你會收到 EOF。

⑦ 如何用c/c++代碼編寫一個實現,自動判斷自己電腦是否連上了網或斷開了網 答案要求程序代碼

if (InternetCheckConnection( 'http://www.yahoo.com/ ', 1, 0) )

edit1-> text:= 'Connected ';

else

edit1-> text:= 'Disconnected ';

另外一個.
BOOL InternetQueryOption(

IN HINTERNET hInternet,

IN DWORD dwOption,

OUT LPVOID lpBuffer,

IN OUT LPDWORD lpdwBufferLength

);

參數的意義是:

hInternet:查詢對象的 Internet 句柄(全局查詢時為 nil),

dwOption:查詢的項目;

lpBuffer:返回的查詢結果;

lpdwBufferLength:查詢結果的位元組長度(包括 IN 和 OUT);

查詢成功返回 True,否則返回 False;

我們要查詢當前計算機的 Internet 連接狀態時可以使用查詢項目 INTERNET_OPTION_CONNECTED_STATE,

得到的 ConnectState 返回值可能是以下值的一個或幾個值之和:

INTERNET_STATE_CONNECTED :$00000001 連接狀態;

INTERNET_STATE_DISCONNECTED :$00000002 非連接狀態(和 INTERNET_STATE_CONNECTED 對應);

INTERNET_STATE_DISCONNECTED_BY_USER :$00000010 用戶請求的非連接狀態

INTERNET_STATE_IDLE :$00000100 連接狀態,並且空閑

INTERNET_STATE_BUSY :$00000200 連接狀態,正在響應連接請求

⑧ 如何用c語言來判斷網路是否通

判斷網路通暢 一般用ping的方式
可以直接使用系統命令
通過popen 打開Ping名令 到結果找返回的時間關鍵字
如果ping通比例達到一定值以上,即可認為網路通暢。
popen具體用法 請自行網路。

⑨ 如何用C語言檢測網路是否連接上、已連接、已斷開狀態

如果對方斷開連接的話,那麼readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值應該是0,可以根據返回值判斷

還有一種辦法,就是做一個心跳檢測,定時發送消息,如果發送失敗就知道對方不在了

⑩ 已知IP和埠,用c語言怎麼判斷能不能連接網路

持續建立tcp連接
建立成功就是和伺服器連上了
不成功就等於是無網路
建立成功後,保持一個心跳連接確定網路通暢就好

閱讀全文

與c判斷網路是否連接相關的資料

熱點內容
網路共享中心沒有網卡 瀏覽:493
電腦無法檢測到網路代理 瀏覽:1350
筆記本電腦一天會用多少流量 瀏覽:475
蘋果電腦整機轉移新機 瀏覽:1349
突然無法連接工作網路 瀏覽:961
聯通網路怎麼設置才好 瀏覽:1191
小區網路電腦怎麼連接路由器 瀏覽:933
p1108列印機網路共享 瀏覽:1187
怎麼調節台式電腦護眼 瀏覽:603
深圳天虹蘋果電腦 瀏覽:841
網路總是異常斷開 瀏覽:584
中級配置台式電腦 瀏覽:895
中國網路安全的戰士 瀏覽:605
同志網站在哪裡 瀏覽:1380
版觀看完整完結免費手機在線 瀏覽:1432
怎樣切換默認數據網路設置 瀏覽:1080
肯德基無線網無法訪問網路 瀏覽:1254
光纖貓怎麼連接不上網路 瀏覽:1377
神武3手游網路連接 瀏覽:938
局網列印機網路共享 瀏覽:975