WSAStartup函式和WSACleanup函式

2021-05-17 15:37:24 字數 1368 閱讀 9320

以下是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服務的功能。同時加...