導航:首頁 > 網路連接 > vc網路連接

vc網路連接

發布時間:2022-11-26 02:05:24

① VC 網路編程新手 求助關於客戶端自動連接

首先,樓主要知道,如果伺服器端沒有開啟,即伺服器沒有調用listen&accept,對connect的調用會導致這個函數一直不會返回(當然最終會返回,默認時間很長),但樓主是在OnTimer中調用connect的,WM_TIMER設為1秒是不合理的。

可以這樣做對話框初始化設置SetTimer;
到時後,調用OnTimer,在OnTimer中先殺死Timer,然後再創建新的線程進行socket的處理,最後如果connect返回失敗,可以在線程返回前再次SetTimer,這樣做比較好。

另外,考慮到在新線程中的connect時,可能會關閉對話框,因此應該在OnClose中進行一些處理,如closesocket,這樣可以強迫connect返回。這樣可以使窗口被關閉後進程得體的被終止。

最後還要返回到新線程中對connect進行一些處理,必須讓connect知道調用失敗是因為連接超時還是因為SOCKET被強行關閉。因為如果是連接超時,那就可以再次SetTimer以便在下一秒再試著連接。如果是SOCKET被關閉了,connect不應該再次SetTimer,因為進程要退出了。代碼如下:
ThreadProc() {
...
if (SOCKET_ERROR == connect(...)) {
if (WSAEINTR == WSAGetLastError()) {
//SOCKET被強行關閉導致錯誤代碼為WSAEINTR
...
} else {
SetTimer(hwnd, 1, 1000, NULL);
}
}
...
}

注意,窗口被關閉時不能使用WSACleanup,因為connect後要使用WSAGetLastError,WSACleanup的調用要慎重,如在CWinApp::ExitInstance中。還有樓主在connect時第一個參數s是什麼東西?是不是應該改為m_socket? 在OnTimer中調用不會返回的connect會使窗口界面出現「假死」.永遠不要讓窗口處理函數長時間的不能返回。如果要進行長時間的處理,應該另外開線程進行單獨處理。

② VC如何編程實現訪問外網

Client/Server模式可以用在廣域網。

假設你要訪問的IP是220.181.28.42 對方開了2345埠

CSocket sock;
sock.Create();
sock.Connect(220.181.28.42,2345);

這樣就連接上了

③ vs安裝顯示網路無法連接失敗

您好,方法
網路上的解決方式基本是兩個,第一個,重裝VC++2010庫,但是不論下載哪個版本的文件,問題依舊存在。
第二個是重新下載它提示的文件VC_red.msi
但是單獨下載這個文件,會提示無法安裝,不適配。
這些方法都試過了,都無法解決,但是不安裝C++庫很多軟體都無法運行,尤其類似CAD或者會聲會影這些大型的軟體,怎麼辦呢?
其實解決方法也比較簡單,不用下載什麼,也不用重裝什麼。我們首先仔細觀察一下錯誤提示,下方有一個絕對路徑。
提示源無法打開,檢查一下,你的電腦肯定有前方的盤符。我們在安裝過程中,打開這個盤符,一定可以找到這個路徑。
注意一定是在安裝中,如果退出安裝,是無法找到此路徑的。然後我們定位進入,會發現丟失的vc_red.msi。
定位安裝即可,肯定可以成功。原因其實很簡單,因為安裝文件解壓的時候沒有解壓到本目錄,而是在其他根目錄下面有一個臨時生成的文件夾,就是一長串數字字母組成的,進去之後發現原來vc運行庫安裝位置默認是解壓縮到這里了,但是由於目錄名沒取對,所以下一步無法進行。

④ VC怎麼在對話框上面添加網頁連接

如果你WINDOWS 的話 ,就用用
ShellExecute(NULL,TEXT("open"),TEXT("http://.com/"),NULL,NULL,SW_SHOWNORMAL);

⑤ vc網路編程斷開連接的問題

調用socket的接收發送函數返回不正確,可以知道網路異常
如果想知道網路狀態但長時間不發送接收數據的話,可以做一個心跳機制,即每隔幾秒來發送一個很小的包,檢測返回值來確定網路狀態

⑥ VC中怎麼禁用網路連接

使用WMI即可。
Win32_NetworkAdapter 里有對應的Enable和Disable方法。你可以通過調用這個兩個函數來啟用和關閉網路連接。

Enable
Enables the network adapter.

Disable
Disables the network adapter.

⑦ VC++斷開網路連接的程序

RasHangUp
這個函數的功能和用法都很簡單,它只有一個參數,就是要掛斷的撥號網路連接的句柄。我們可以利用
'RasEnumConnections獲得當前系統所有RAS連接(通常我們的系統在一個時刻只使用一個撥號網路連接),利用這個函數我就可以得到RasHangUp所需的句柄了

⑧ 1、如何使用VC判斷本地連接是否連接 2、如何使用VC判斷無線網路是否連接

贊成樓上的說法!利用API 獲得網卡信息,如果IP地址 網管知網掩碼DNS都是正確的,說明的網路連接是正確的,當然分情況的 無線和有線。

⑨ VC++如何獲取桌面上「網路連接快捷方式」的圖標

嗯,系統的一些特殊圖標不是你那樣獲取的,應該是用PIDL定位後去獲取,你看一下我的代碼

HICONGetIconForCSIDL(intcsidl)
{
LPITEMIDLISTpidl=0;
SHGetSpecialFolderLocation(NULL,csidl,&pidl);
if(pidl)
{
SHFILEINFOshellInfo;
SHGetFileInfo(LPCTSTR(pidl),FILE_ATTRIBUTE_NORMAL,
&shellInfo,sizeof(shellInfo),
SHGFI_PIDL|SHGFI_ICON);
IMalloc*pMalloc;
SHGetMalloc(&pMalloc);
if(pMalloc)
{
pMalloc->Free(pidl);
pMalloc->Release();
}
returnshellInfo.hIcon;
}
return0;
}

voidCTestICONDlg::OnOK()
{
//TODO:Addextravalidationhere

HICONhIcon=GetIconForCSIDL(CSIDL_NETWORK);

CClientDCdc(this);
dc.DrawIcon(0,0,(HICON)hIcon);

DestroyIcon(hIcon);
}


我測試過~可以繪制出圖標~~其它的也類似,你換一下CSIDL_NETWORK,把它換成其它就獲取其它圖標了

⑩ 怎麼用VC++編寫一個檢查網路連接的程序,以及是否能連接外部ftp伺服器

gethostname()函數可以 滿足你1 的要求,
2,就復雜了,如果你在程序中指定了IP 比較好辦 GetSocketName()就可以檢測出來,不成功就返回0.0.0.0 。
如果你是想隨便就想知道能不能連一個隨意的FTP那可麻煩了。不能做一個掃描器吧。

閱讀全文

與vc網路連接相關的資料

熱點內容
載入東西顯示網路信號弱原因 瀏覽:962
重慶合川建材行業網路營銷有哪些 瀏覽:658
如何退出網路教育 瀏覽:152
世界上出現最早計算機網路是 瀏覽:867
2g網路說哪個明星 瀏覽:489
北大青鳥網路營銷師 瀏覽:87
tplink路由器的默認wifi網路 瀏覽:229
移動光貓如何設置千兆網路 瀏覽:82
無線網路路由器亮紅燈怎麼回事 瀏覽:127
計算機網路名詞解釋題mt 瀏覽:827
電腦連接網路上傳數據 瀏覽:619
無線網路手機信號滿格卻上不了 瀏覽:767
肥是什麼意思網路用語 瀏覽:9
tlr406路由器沒有網路 瀏覽:17
屏幕為什麼出現無網路 瀏覽:636
蘋果多人網路游戲 瀏覽:324
網易郵箱網路連接錯誤 瀏覽:901
網路播放器無信號怎麼辦 瀏覽:937
北京網路營銷軟體開發質量服務 瀏覽:153
哪裡下載網路代理軟體 瀏覽:903

友情鏈接