這幾天我在寫乙個模仿windows自帶的ping程式,可是套接字總是建立不成功,在網上找了一些資料最後總算把問題解決了,現在總結一下。
解決方法:以管理員執行vs就行了我的是vs2013,vs2010也一樣。
/*winsock 初始化*/
if (wsastartup(makeword(2, 2), &wsadata) != 0)
/*建立原始套接字,該套接字用於icmp協議*/
socket m_socket;
ps:已經鏈結了ws2_32.lib,#pragma comment(lib, "ws2_32.lib")
#include
#include
也已加入了
解決方法:以管理員執行vs就行了我的是vs2013,vs2010也一樣。
vs2013(2010)如何以管理員許可權啟動執行:
在某些專案進行開發的時候,需要提公升應用程式本身的許可權,這個是很容易的。找到vs2013的快捷方式:右擊->以管理員身份執行->開啟專案
或者右擊開啟檔案位置找到vs2013的啟動專案devenv.exe:右擊屬性相容性特權等級,以管理員許可權執行;
如果需要每個使用者都以管理員許可權執行,還可以更改所有使用者的設定特權等級,以管理員許可權執行。然後在專案的開啟方式中確保以vs2013為預設開啟程式就好了。
18 3 2 建立套接字
套接字是通過標準的 unix 檔案描述符和其他的程式通訊的乙個方法。套接字在使用前必須先被建立,建立套接字的系統呼叫為 socket 它的一般形式是 int socket int domain,int type,int protocol 建立出來的套接字是一條通訊線路的乙個端點,domain 引數負...
4 6 2 建立套接字
當 socket 函式返回 invalid socket 時,呼叫 showerrormsg 函式顯示呼叫失敗的原因。建立套接字程式清單如下。建立 windows socket shost socket af inet,sock stream,ipproto tcp if invalid socke...
建立套接字失敗
if afxsocketinit 執行程式,會發現彈出對話方塊 載入套接字型檔失敗。原因是因為該段 新增的位置不對。必須寫在initinstance函式的開始位置,建立視窗前 考慮到afxsocketinit 函式只能載入1.1版本的套接字型檔,若要載入其他版本的套接字型檔,則需要新增如下 word...