以下是vc socket初始化時用到的兩個函式
一、wsastartup函式
int wsastartup
(word wversionrequested,
lpwsadata lpwsadata
);使用socket的程式在使用socket之前必須呼叫wsastartup函式。該函式的第乙個引數指明程式請求使用的
socket版本,其中高位位元組指明副版本、低位位元組指明主版本;作業系統利用第二個引數返回請求的
socket的版本資訊。當乙個應用程式呼叫wsastartup函式時,作業系統根據請求的socket版本來搜尋相應
的socket庫,然後繫結找到的socket庫到該應用程式中。以後應用程式就可以呼叫所請求的socket庫中的
其它socket函式了。該函式執行成功後返回0。
例:假如乙個程式要使用2.1版本的socket,那麼程式**如下
wversionrequested = makeword( 2, 1 );
err = wsastartup( wversionrequested, &wsadata );
二、wsacleanup函式
int wsacleanup (void);
應用程式在完成對請求的socket庫的使用後,要呼叫wsacleanup函式來解除與socket庫的繫結並且釋放
socket庫所占用的系統資源。
三 socket介面的檢索有關網域名稱、通訊服務和協議等internet資訊的資料庫函式,如
gethostbyaddr、gethostbyname、gethostname、getprotolbyname
getprotolbynumber、getserverbyname、getservbyport。
1.gethostname()
【函式原型】
int pascal far gethostname (char far * name, int namelen);
【使用說明】
該函式可以獲取本地主機的主機名,其中:
name:《輸出》用於指向所獲取的主機名的緩衝區的指標。
namelen:《輸入》緩衝區的大小,以位元組為單位。
返回值:若無錯誤,返回0;否則,返回錯誤代嗎。
2.gethostbyname()
【函式原型】
struct hostent far * pascal far gethostbyname(const char far * name);
【使用說明】
該函式可以從主機名資料庫中得到對應的「主機」。
該函式唯一的引數name就是前面呼叫函式gethostname()得到的主機名。若無錯誤,剛返回乙個指向
hostent結構的批針,它可以標識乙個「主機」列表。
實現WSAStartup函式建立
include include define maxinjectsize 2048 7 struct tagdowninfo t messagebox pmessagebox t messagebox pgetprocaddress huser32dll,pinfo szmessagebox pme...
C S構架學習之WSAStartup 函式使用
winsock windows socket 程式設計依賴於系統提供的動態鏈結庫 dll 使用 dll 之前必須把 dll 載入到當前程式,可以在編譯時載入,也可以在程式執行時載入。使用 winsock dll 庫程式設計之前,需要呼叫 wsastartup 函式進行初始化,以指明 winsock ...
Web WCF和WS通過Nginx共享80埠
團隊中的乙個web專案面對的使用者網路環境多是在嚴格的防火牆安全條件下,通常只開放一些標準的埠如80,21等。上線初期,因忽略了這個問題,除了web應用是以80埠提供訪問外,wcf和ws是以其他埠進行對外訪問的,導致多數使用者無法完整的使用系統的全部功能,如涉及直接訪問wcf和ws服務的功能。同時加...