檢測網路連接的代碼如下:
SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0);
// connect server socket
SOCKADDR_IN addrServer;
addrServer.sin_addr.S_un.S_addr = inet_addr("www.baidu.com");
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons(80);
if(connect(sockClient, (SOCKADDR *)&addrServer, sizeof(addrServer))==SOCKET_ERROR) // 連接指定的地址、埠
{
MessageBox(NULL,_T("客戶端連接失敗"),_T("問候"),0) ;
}
else
{
MessageBox(NULL,_T("客戶端連接成功"),_T("問候"),0) ;
}
在www.baidu.com位置換成IP也不行。
但為什么總是提示連接失敗呢?求兄弟們解答,萬分感謝兄弟們
uj5u.com熱心網友回復:
WSAStartup 和 WSACleanup 有沒有?uj5u.com熱心網友回復:
這兩個是什么用處啊,我沒有使用啊,怎么辦uj5u.com熱心網友回復:
在運行你這段程式前必須先運行:WSAStartup
uj5u.com熱心網友回復:
if (WSAStartup(MAKEWORD(1,1), &wsaData))return 0;
看看回傳值正確否???
uj5u.com熱心網友回復:
樓主只是測驗網路的聯通性,何必要創建套接字,直接用ping不就完了?uj5u.com熱心網友回復:
WSAStartup要怎么使用啊,兄弟們給個例子好不好,感謝啊uj5u.com熱心網友回復:
inet_addr("www.baidu.com");這個里面只能跟字串的ip地址,域名不行。
uj5u.com熱心網友回復:
BOOL bWsaStartupEd = FALSE;
SOCKET sockClient = INVALID_SOCKET;
do
{
WSADATA wsa={0};
if(WSAStartup(MAKEWORD( 2, 2 ), &wsa) != 0)
break;
bWsaStartupEd = TRUE;
sockClient = socket(AF_INET, SOCK_STREAM, 0);
if(sockClient == INVALID_SOCKET)
break;
// connect server socket
SOCKADDR_IN addrServer;
addrServer.sin_addr.S_un.S_addr = inet_addr("www.baidu.com");
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons(80);
if(connect(sockClient, (SOCKADDR *)&addrServer, sizeof(addrServer))==SOCKET_ERROR) // 連接指定的地址、埠
{
TRACE(_T("客戶端連接失敗\n"));
}
else
{
TRACE(_T("客戶端連接成功"));
}
} while (0);
if(sockClient != INVALID_SOCKET)
{
closesocket(sockClient);
sockClient = INVALID_SOCKET;
}
if(bWsaStartupEd)
{
WSACleanup();
}
uj5u.com熱心網友回復:
謝謝樓上哥們我馬上試一下看看uj5u.com熱心網友回復:
用了這段代碼后,好像直接BREAK了,什么提示也沒彈出,什么原因啊,兄弟,萬分感謝
uj5u.com熱心網友回復:
原來是MESSAGEBOX改成了TRACK,沒有注意看,另外,inet_addr("www.baidu.com")不行,只能用IP,能不能用網址呢,
另外,PING方法是什么,怎么樣寫代碼才行呢?
萬分感謝
uj5u.com熱心網友回復:
gethostbyname 可以決議域名uj5u.com熱心網友回復:
gethostbyname如何使用啊,謝謝兄弟uj5u.com熱心網友回復:
另外,用DO回圈會卡,還得用執行緒,哪位兄弟給個代碼。創建執行緒,用gethostbyname轉成IP,然后再用上面的代碼感謝兄弟們
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/150856.html
標籤:網絡編程
上一篇:opengl
