freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第8章160winsock160api-在線瀏覽

2024-07-29 10:42本頁面
  

【正文】 (?)函數(shù)返回 0。 應(yīng)用程序可以通過 WSAGetLastError(?)來得到一個特定的錯誤代碼 , 錯誤代碼說明如下: 第 8章 Winsock API ● ?WSAEFAULT:名字長度參數(shù)太小 。 ● ?WSAENETDOWN: Windows Sockets實現(xiàn)檢測到了網(wǎng)絡(luò)子系統(tǒng)的錯誤 。 4. 函數(shù)使用說明 該函數(shù)把本地主機(jī)名存放入由 name參數(shù)指定的緩沖區(qū)中 。 不管是哪種形式 , 該函數(shù)返回的名字必定可以在 gethostbyname(?) 和WSAAsyncGetHostByName(?)函數(shù)中使用 。 第 8章 Winsock API 2. 函數(shù)參數(shù)說明 該函數(shù)中各參數(shù)的說明如下: ● ?s:傳入?yún)?shù) , 一個已建立連接的套接口描述字 。 ● ?namelen:傳出參數(shù) , 遠(yuǎn)程協(xié)議地址長度 。如果調(diào)用失敗,則返回 SOCKET_ERROR錯誤信息,應(yīng)用程序可通過調(diào)用 WSAGetLastError(?)函數(shù)來獲取對該錯誤的進(jìn)一步描述。 ● ?WSAENETDOWN: Windows套接口實現(xiàn)檢測到網(wǎng)絡(luò)子系統(tǒng)失效 。 ● ?WSAEINPROGRESS:一個阻塞的 Windows套接口調(diào)用正在運行中 。 ● ?WSAENOTSOCK:描述字不是一個套接口 。 它只能用于已經(jīng)建立連接的套接口 。 第 8章 Winsock API 獲得套接口本地協(xié)議地址 —— getsockname(?) 1. 函數(shù)格式 getsockname(?)函數(shù)的格式如下: int getsockname( SOCKET s, struct sockaddr FAR* name, int FAR* namelen )。 ● ?name:傳出參數(shù) , 指向返回的本地協(xié)議地址的指針 。 當(dāng)函數(shù)調(diào)用完成時 ,??它可以返回實際的本地地址長度 。如果調(diào)用失敗 , 則返回 SOCKET_ERROR錯誤信息 , 應(yīng)用程序可通過 WSAGetLastError(?)函數(shù)來獲取如下的錯誤代碼: ● ?WSANOTINITIALISED:在使用此 API之前應(yīng)成功調(diào)用 WSAStartup(?)。 ● ?WSAEFAULT: namelen參數(shù)不夠大 。 ● ?WSAENOTSOCK:描述字不是一個套接口 。 第 8章 Winsock API 4. 函數(shù)使用說明 getsockname(?)函數(shù)用于獲取一個套接口的協(xié)議地址 , 它用于一個已綁定或已連接套接口 。 在返回時 ,namelen參數(shù)包含了名字的實際字節(jié)數(shù) 。除非套接口被連接, Windows套接口應(yīng)用程序不應(yīng)假設(shè) IP地址會從 INADDR_ANY變成其他地址。 第 8章 Winsock API 根據(jù)主機(jī)名取得主機(jī)信息 —— gethostbyname(?)或WSAAsyncGetHostByName(?) gethostbyname(?) 和 WSAAsynGetHostByName(?) 這 兩 個Winsock API函數(shù)從主機(jī)數(shù)據(jù)庫中取回與指定的主機(jī)名對應(yīng)的主機(jī)信息 。 hostent結(jié)構(gòu)的定義如下: struct hostent { char FAR * h_name。 /* alias list */ short h_addrtype。 /* length of address */ char FAR * FAR * h_addr_list。 第 8章 Winsock API 該結(jié)構(gòu)中各字段的含義如下: ● ?h_name:該字段是正式的主機(jī)名 。 ● ?h_addrtype:表示主機(jī)地址類型 , 如 AF_INET表示 IPv4地址 。 ● ?h_addr_list:該字段返回一個主機(jī)的所有 IP地址 , 因為一臺主機(jī)可以分配若干個 IP地址 (當(dāng)然這主要是對服務(wù)器而言的 )。 一般情況下 , 應(yīng)用程序都采用該數(shù)組中的第一個地址 。 第 8章 Winsock API ● ?h_addr:是為了保持向后兼容而定義的字段 ,一般很少使用 。 在 Winsock 1中提供的異步擴(kuò)WSAAsyncGetHostByName(?)函數(shù)的格式是: 第 8章 Winsock API HANDLE WSAAsyncGetHostByName( HWND hWnd, unsigned int wMsg, const char FAR * name, char FAR * buf, int buflen )。 WSAAsyncGetHostByName(?)函數(shù)是一個 Windows異步擴(kuò)展函數(shù) , 它在函數(shù)結(jié)束時 , 利用 Windows消息向應(yīng)用程序發(fā)出通知 , 其各參數(shù)的含義是: ● ?hWnd:傳入?yún)?shù) ,??是一個窗口句柄 ,??表示當(dāng)異步請求完成時 , 該窗口句柄應(yīng)該收到一條消息 。 第 8章 Winsock API ● ?name:傳入?yún)?shù) , 指向主機(jī)名的指針 。注意該數(shù)據(jù)區(qū)必須大于 hostent結(jié)構(gòu)的大小 , 這是因為Windows Sockets實現(xiàn)不僅要用該數(shù)據(jù)區(qū)容納 hostent結(jié)構(gòu) , 而且 hostent結(jié)構(gòu)的成員引用的所有數(shù)據(jù)也要在該區(qū)域內(nèi) 。 ● ?buflen:傳入?yún)?shù) , 上述數(shù)據(jù)區(qū)的大小 。 如果調(diào)用失敗則返回一個空指針 , 應(yīng)用程序可以通過 WSAGetLastError(?)來得到一個特定的錯誤代碼 , 錯誤代碼說明如下: ● ?WSANOTINTIALISED:在應(yīng)用這個 API前 , 必須成功調(diào)用 WSAStartup(?)。 ● ?WSAHOST_NOT_FOUND:沒有找到授權(quán)應(yīng)答主機(jī) 。 第 8章 Winsock API ● ?WSANO_RECOVERY:無法恢復(fù)的錯誤 , 如查詢有格式錯誤 (FORMERR)、 拒絕服務(wù) (REFUSED)沒有通信處理機(jī) 、 (NOTIMP)。 ● ?WSAEINPROGRESS:一個阻塞的 Windows Sockets操作正在進(jìn)行 。 第 8章 Winsock API 4. 異步擴(kuò)展函數(shù)返回信息 WSAAsyncGetHostByName(?)函數(shù)是 gethostbyname(?)函數(shù)的 Windows 異步擴(kuò)展函數(shù) 。 當(dāng)異步操作完成時 , 如果成功則將主機(jī)名和地址信息拷貝到 buf緩沖區(qū)中 , 同時向句柄為 hWnd的應(yīng)用程序窗口發(fā)送一條消息 (wMsg)。 錯誤代碼為 0說明異步操作成功 , 在成功完成的情況下 , 提供給初始函數(shù)調(diào)用的緩沖區(qū)中包含了一個 hostent結(jié)構(gòu) 。 第 8章 Winsock API 若錯誤代碼為 WSAENOBUFS, 則說明在初始調(diào)用時由 buflen指出的緩沖區(qū)大小對于容納所有的結(jié)果信息來說太小了 。 如果應(yīng)用程序認(rèn)為獲取的數(shù)據(jù)不夠 , 它就可以在設(shè)置了足夠容納所需信息的緩沖區(qū) (也就是大于 lParam低 16位提供的數(shù)值 )后 , 重新調(diào)用 WSAAsyncGetHostByName(?)函數(shù) 。 這兩個宏的定義如下: 第 8章 Winsock API define WSAGETASYNCERROR(lParam) HIWORD(lParam) define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam) 使用這些宏可以最大限度地提高應(yīng)用程序源代碼的可移植性 。 第 8章 Winsock API 若操作成功啟動 , 則 WSAAsyncGetHostByName(?)返回一個 HANDLE類型的非 0值 , 它用來標(biāo)識該異步請求任務(wù)的句柄 。 如果異步操作不能啟動 ,WSAAsyncGetHostByName(?)返回一個 0值 , 并且可使用WSAGetLastError(?)函數(shù)來獲取如下的錯誤代碼: ● WSANOTINITIALISED:在使用本 API前必須進(jìn)行一次成功的 WSAStartup(?)調(diào)用 。 ● ? WSAEINPROGRESS : 一 個 阻 塞 的 Windows Sockets操作正在進(jìn)行 。 在應(yīng)用程序的窗口收到消息時可能會設(shè)置下列錯誤代碼 ,它們可以通過 WSAGETASYNCERROR宏從應(yīng)答的消息lParam中取出: ● ?WSAENETDOWN: Windows Sockets實現(xiàn)已檢測到網(wǎng)絡(luò)子系統(tǒng)故障 。 ● ?WSAHOST_NOT_FOUND:未找到授權(quán)應(yīng)答主機(jī) 。 ● ?WSANO_RECOVERY:不可恢復(fù)性錯誤 。 第 8章 Winsock API 根據(jù)主機(jī)地址取得主機(jī)信息 —— gethostbyaddr(?)或WSAAsyncGetHostByAddr(?) 這兩個函數(shù)可以根據(jù)主機(jī)的 IP地址取得主機(jī)名和主機(jī)地址等信息 。 第 8章 Winsock API 在 Winsock 1中提供的異步擴(kuò)展WSAAsyncGetHostByAddr(?)函數(shù)的格式是: HANDLE WSAAsyncGetHostByAddr( HWND hWnd, unsigned int wMsg, const char FAR* addr, int len, int type, char FAR* buf, int buflen )。 ● ?len:傳入?yún)?shù) , 地址的長度 , 如果是 IPv4類型的地址 , 則該值為 4。 WSAAsyncGetHostByAddr(?)函數(shù)是 gethostbyaddr(?)函數(shù)的異步版本 。 第 8章 Winsock API 3. 函數(shù)返回信息 這兩個函數(shù)返回的信息與通過名稱獲取主機(jī)信息的 gethostbyname(?)函數(shù)相同。它們都要使用到一個與協(xié)議有關(guān)的結(jié)構(gòu),該結(jié)構(gòu)的定義如下: 第 8章 Winsock API struct protoent{ char FAR* p_name。 short p_proto。 該結(jié)構(gòu)的成員有: ● ?p_name:正式的協(xié)議名 。 ● ?p_proto:以主機(jī)字節(jié)順序排列的協(xié)議號 。 在 Winsock 1中提供的異步擴(kuò)展WSAAsyncGetProtoByName(?)函數(shù)的格式是: HANDLE WSAAsyncGetProtoByName( HWND hWnd, unsigned int wMsg, const char FAR * name, char FAR * buf, int buflen )。 異步擴(kuò)展格式中的 buf是接收 protoent數(shù)據(jù)的緩沖區(qū)指針 ,buflen 為該緩沖區(qū)的大小 。 3. 函數(shù)返回信息 如果沒有錯誤發(fā)生 , getprotobyname(?)返回如上所述的一個指向 protoent結(jié)構(gòu)的指針 , 如果調(diào)用失敗 , 則返回一個空指針 。 ● ?WSAENETDOWN: Windows Sockets實現(xiàn)檢測到了網(wǎng)絡(luò)子系統(tǒng)的錯誤 。 ● ?WSANO_DATA:有效的名字 , 但沒有關(guān)于請求類型的數(shù)據(jù)記錄 。 ● ? WSAEINTR :阻塞調(diào)用被WSACancelBlockingCall(?)取消了 。 ● ?WSATRY_AGAIN:非正式的協(xié)議沒有找到或服務(wù)器失敗 。 第 8章 Winsock API 根據(jù)協(xié)議號取得主機(jī)協(xié)議信息 ——getprotobynumber(?)或 WSAAsyncGetProtoByNumber(?) getprotobynumber(?)和 WSAAsyncGetProtoByNumber返回對應(yīng)于給定協(xié)議號的相關(guān)協(xié)議信息。 第 8章 Winsock API 在 Winsock 1中提供的異步擴(kuò)展WSAAsyncGetProtoByNumber(?)函數(shù)的格式是: HANDLE WSAAsyncGetProtoByNumber( HWND hWnd, unsigned int wMsg, int number, char FAR * buf, int buflen )。 異步擴(kuò)展格式中的其他參數(shù)與WSAAsyncGetHostByName(?)函數(shù)中的參數(shù)含義相同 。 第 8章 Winsock API 根據(jù)服務(wù)名取得相關(guān)服務(wù)信息 —— ?getservbyname(?)或 WSAAsyncGetServByName(?) getservbyrvame(?)和 WSAAsy
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1