Ⅰ 如何用c語言來判斷網路是否通
判斷網路通暢 一般用ping的方式
可以直接使用系統命令
通過popen 打開Ping名令 到結果找返回的時間關鍵字
如果ping通比例達到一定值以上,即可認為網路通暢。
popen具體用法 請自行網路。
Ⅱ 已知IP和埠,用c語言怎麼判斷能不能連接網路
持續建立tcp連接
建立成功就是和伺服器連上了
不成功就等於是無網路
建立成功後,保持一個心跳連接確定網路通暢就好
Ⅲ 如何測試網路是否正常
檢測網路是否正常的方法
步驟:
開始 - 運行(輸入CMD)- 確定或回車;
打開管理員命令窗口;
我們在管理員命令窗口輸入:ipconfig /all,回車。檢查IP地址、子網掩碼、默認網關、DNS伺服器地址是否正確;
我們在管理員命令窗口再輸入:ping 127.0.0.1,檢查網卡是否能轉發數據(如果出現請求超時(Request timed out),則說明:配置可能出了差錯,也可能是網路有問題)。
我們再輸入nslookup,回車,檢測DNS解析是否正確。
通過上述三步檢測,沒有出現什麼問題,證明網路正常。
如果是TCP/IP協議出了問題,我們可以重新安裝TCP/IP協議。
步驟是:
開始 - 運行(輸入CMD)- 確定或回車;
打開管理員命令窗口;
我們在管理員命令窗口再輸入:netsh int ip reset C:\resetlog.txt,回車,
重啟計算機,完成操作。
Ⅳ C# C/S結構的系統出現網路異常,無法連接資料庫時,該怎麼判斷,如何捕獲異常
在訪問資料庫那一層用try catch捕獲異常,然後拋出去或者直接返回一個異常錯誤信息,然後再通過業務邏輯層把信息傳遞到UI,彈出個"系統網路故障,無法連接遠程伺服器."
Ⅳ 如何用C語言檢測網路是否連接上、已連接、已斷開狀態
如果對方斷開連接的話,那麼readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值應該是0,可以根據返回值判斷
還有一種辦法,就是做一個心跳檢測,定時發送消息,如果發送失敗就知道對方不在了
Ⅵ 如何檢查電腦網路是否正常
1、第一步在我們的電腦按"win+R"鍵打開運行,輸入cmd,點擊確定。
Ⅶ 如何檢測網路是否正常工作
首先確定網路是否暢通,其次是看網路里的流量是否正常,最後看本機有無受到攻擊提示,有的話可能網路上有計算機中毒了。
凡是用電腦上過網的人,都會遇到過網路不正常的現象,要麼是上不了網,要麼是時斷時連。遇到這種情況,或者是外接網路問題,或者是IP、DNS的配置問題,也可能是TCP/IP 協議問題。這時,我們可以先檢測一下網路是否正常,究竟是哪裡出了問題。
檢測網路是否正常的方法步驟:
1、開始 - 運行(輸入CMD)- 確定或回車;
2、打開管理員命令窗口;
3、在管理員命令窗口輸入:ipconfig /all,回車。檢查IP地址、子網掩碼、默認網關、DNS伺服器地址是否正確;
4、在管理員命令窗口再輸入:ping 127.0.0.1,檢查網卡是否能轉發數據(如果出現請求超時(Request timed out),則說明:配置可能出了差錯,也可能是網路有問題)。
5、再輸入nslookup,回車,檢測DNS解析是否正確。
6、通過上述三步檢測,沒有出現什麼問題,證明網路正常。
7、如果是TCP/IP協議出了問題,我們可以重新安裝TCP/IP協議,、;
步驟是:開始 - 運行(輸入CMD)- 確定或回車;
8、打開管理員命令窗口;
9、在管理員命令窗口再輸入:netsh int ip reset C:\resetlog.txt,回車,
10、重啟計算機,完成操作。
Ⅷ 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/C++函數
用DOS命令 netstat 轉向 到文件,再讀文件,分析內容。
netstat 有一些選項,根據你的需要可以選設。
system("netstat -a > my_net.dat");
打開 my_net.dat
讀文件,分析內容。
netstat 用法在命令窗 打
netstat /?
查看。