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

正文內容

第8章160winsock160api-文庫吧資料

2025-05-27 10:42本頁面
  

【正文】 , 雖然這只是一個關于網絡信息獲取函數用法的實例 , 但該程序也是一個非常有用的實用程序 , 它可以獲得一臺主機的主機名 、主機別名 (如果有的話 )、 主機 IP地址列表等信息 。 第 8章 Winsock API 網絡信息獲取函數應用實例 本小節(jié)舉一個實例來說明以上介紹的網絡信息獲取函數的用法 。 否則 , getservbyport(?)對 port和proto都進行匹配 。 ● proto:傳入參數 , 指向協(xié)議名的指針 (可選 )。 第 8章 Winsock API 在 Winsock 1 中 提 供 的 異 步 擴 展WSAAsyncGetServByPort(?)函數的格式是: HANDLE WSAAsyncGetServByPort( HWND hWnd, unsigned int wMsg, int port, const char FAR * proto, char FAR * buf, int buflen )。 第 8章 Winsock API 根據端口號取得相關服務信息 ——getservbyport(?)或 WSAAsyncGetServByPort(?) getservbyport(?)和 WSAAsyncGetServByPort(?)函數用于返回對應于給定端口號和協(xié)議名的相關服務信息 。 否則 ,getservbyname(?)對 name和 proto都進行匹配 。 ● proto:傳入參數 , 指向協(xié)議名的指針 (可選 )。 在 Winsock 1 中 提 供 的 異 步 擴 展WSAAsyncGetServByName(?)函數的格式是: 第 8章 Winsock API HANDLE WSAAsyncGetServByName( HWND hWnd, unsigned int wMsg, const char FAR* name, const char FAR* proto, char FAR * buf, int buflen )。 ● ?s_proto:連接該服務時用到的協(xié)議名 。 ● ?s_aliases:所有其他的可選服務名 。 }。 short s_port。 這兩個函數都要用到一個如下所示的結構: struct servent{ char FAR* s_name。 3. 函數返回信息 函數的返回信息與通過協(xié)議名獲取主機協(xié)議信息時的情況相同 。 第 8章 Winsock API 2. 函數參數說明 參數 number表示傳入參數 , 是一個以主機字節(jié)順序排列的協(xié)議號 。 1. 函數格式 在 Winsock 1中提供的 getprotobynumber(?)函數的格式是: struct protoent FAR *getprotobynumber( int number )。 ● ?WSAEFAULT: name參數不在有效的用戶地址空間 。 ● ?WSAHOST_NOT_FOUND:沒有找到協(xié)議 。 第 8章 Winsock API ● ?WSAEINPROGRESS:一個阻塞的 Windows Sockets操作正在進行 。 ● ?WSANO_RECOVERY:無法恢復的錯誤 , 如FORMERR、 REFUSED、 NOTIMP等 。 應用程序可以通過 WSAGetLastError(?)來得到一個如下所示的特定錯誤代碼: 第 8章 Winsock API ● ?WSANOTINTIALISED:在應用這個 API前 ,必須成功調用 WSAStartup(?)。 其 他 參 數 與WSAAsyncGetHostByName(?)函數中的參數相同 , 返回信息的含義也一樣 。 第 8章 Winsock API 2. 函數參數說明 getprotobyname(?)函數中的參數 name為傳入參數 , 指向協(xié)議名的指針 。 第 8章 Winsock API 1. 函數格式 在 Winsock 1中提供的 getprotobyname(?)函數的格式是: struct protoent FAR *getprotobyname( const char FAR * name )。 ● ?p_aliases:它是二維字符指針 , 返回一個協(xié)議的所有別名 。 }。 char FAR* FAR * p_aliases。 根據協(xié)議名取得主機協(xié)議信息 ——getprotobyname(?)或 WSAAsyncGetProtoByName(?) 函數 getprotobyname()WSAAsyncGetProtoByName()可以根據協(xié)議名稱返回對應的相關協(xié)議信息。 它的其他參數以及返回信息與WSAAsyncGetHostByName(?)函數完全相同 。 ● ?type:傳入參數 , 地址類型 , 如為 AF_INET。 第 8章 Winsock API 2. 函數參數說明 gethostbyaddr(?)函數的參數說明如下: ● ?addr:傳入參數 , 指向網絡字節(jié)順序地址的指針 。 1. 函數格式 在 Winsock 1中提供的 gethostbyaddr(?)函數的格式是: struct hostent FAR *gethostbyaddr( const char FAR* addr, int len, int type )。 ● ?WSANO_DATA:無請求類型的數據記錄 。 ● ?WSATRY_AGAIN:未找到非授權應答主機 ,或 SERVERFAIL。 第 8章 Winsock API ● ?WSAENOBUFS:可用的緩沖區(qū)空間不足或沒有 。 ● ?WSAEWOULDBLOCK:本異步操作此時由于Windows Sockets實現(xiàn)的資源或其他限制的制約而無法調度 。 第 8章 Winsock API ● ?WSAENETDOWN: Windows Sockets實現(xiàn)已檢測到網絡子系統(tǒng)故障 。 通過該句柄使用 WSACancelAsyncRequest(?)函數可取消該操作 , 也可通過檢查 wParam消息參數 , 以匹配異步操作和完成消息 。 函數的返回值指出異步操作是否成功啟動 , 注意它并不隱含操作本身的成功或失敗 (后面要介紹的其他異步函數的返回值也與它類似 )。 錯 誤 代 碼 和 緩 沖 區(qū) 大 小 應 使 用WSAGETASYNCERROR 和 WSAGETASYNCBUFLEN宏從 lParam中取出 。 在這種情況下 , lParam的低 16位提供所有信息所需的緩沖區(qū)大小 。 為存取該結構中的元素 ,初始的緩沖區(qū)指針應置為 hostent結構的指針 。 wParam參數包含了初次函數調用時返回的異步任務句柄 , lParam的高 16位包含著錯誤代碼 , 該代碼可以是 。 所謂 “ 異步 ” , 指的是Windows Sockets的實現(xiàn)啟動該操作后立刻回到調用方 , 并傳回一個異步任務句柄 , 應用程序可以用它來標識該操作 。 ● ? WSAEINTR :阻塞調用被WSACancelBlockingCall(?)取消了 。 ● ?WSANO_DATA:有效的名字 , 但沒有關于請求類型的數據記錄 。 ● ?WSATRY_AGAIN:沒有找到非授權主機 , 或者服務器故障 (SERVERFAIL)。 ● ?WSAENETDOWN: Windows Sockets實現(xiàn)檢測到了網絡子系統(tǒng)的錯誤 。 第 8章 Winsock API 3. 函數返回信息 調用該函數時如果沒有錯誤發(fā)生 , gethostbyname(?)函數返回如上所述的一個指向 hostent結構的指針 。 建議用戶提供一個 MAXGETHOSTSTRUCT字節(jié)大小的緩沖區(qū) 。 ● ?buf:傳出參數 ,??接收 hostent數據的數據區(qū)指針 。 ● ?wMsg:傳入參數 , 當異步請求完成時 , 將要接收的消息 。 第 8章 Winsock API 2. 函數參數說明 gethostbyname(?)函數中各參數的說明如下: ● ?name:傳入參數 , 是一個指向主機名的指針 。 1. 函數格式 在 Winsock 1中提供的 gethostbyname(?)函數的格式是: struct hostent FAR *gethostbyname( const char FAR* name )。 但是 , 如果返回的地址不止一個 , 應用程序就會相應地選擇一個最恰當的地址 , 而不是一直都用第一個地址 。 這個數組中的每個地址都是按網絡字節(jié)順序返回的 。 ● ?h_length:該字段可以返回主機地址的字節(jié)數 。 ● ?h_aliases:它是二維字符指針 , 返回一臺主機的所有別名 (即別名列表 )。 /*list of addresses */ define h_addr h_addr_list[0] /* address, for backward pat */ }。 /* host address type */ 第 8章 Winsock API short h_length。 /* official name of host */ char FAR * FAR * h_aliases。 這兩個函數均返回一個 hostent結構型的量 , 所以先介紹一下該結構的格式 。這是因為對于一個有多個 IP地址的主機來說,除非套接口被連接,否則該套接口所用的 IP地址是不可知的 (即不能被確定是哪一個 )。 若一個套接口與 INADDR_ANY綁定,即該套接口可以用任意的主機地址,此時除非調用 connect(?)或 accept(?)來連接,否則 getsockname(?)將不會返回主機 IP地址的任何信息。 本調用特別適用于如下情況:未調用 bind(?) 就調用了 connect(?) , 這時惟有getsockname(?)調用可以獲知系統(tǒng)內定的本地地址 。 ● WSAEINVAL:套接口未用 bind(?)捆綁。 ● ?WSAEINPROGRESS:一個阻塞的 Windows套接口調用正在運行中 。 ● ?WSAENETDOWN: Windows套接口實現(xiàn)檢測到網絡子系統(tǒng)失效 。 第 8章 Winsock API 3. 函數返回信息 調用該函數時若無錯誤發(fā)生 , 則 getsockname(?)函數返回 0。 ● ?namelen:傳出參數 , 本地協(xié)議地址長度 。 第 8章 Winsock API 2. 函數參數說明 該函數的參數說明如下: ● ?s:傳入參數 , 標識一個套接口的描述字 。 對于數據報類型的套接口來說 , 它只能返回先前調用 connect(?)函數時使用的對等端信息 , 在 sendto(?)函數中使用過的對等端信息不能被返回 。 第 8章 Winsock API 4. 函數使用說明 getpeername(?)函數用于從套接口 s中獲取與它綁定的遠程協(xié)議的地址信息 , 并把它存放在 sockaddr類型的 name結構中 。 ● ?WSAENOTCONN:套接口未建立連接 。 ● ?WSAEFAULT: namelen參數不夠大 ??色@得的錯誤代碼如下: 第 8章 Winsock API ● ?WSANOTINITIALISED:在使用此 API之前應成功調用 WSAStartup(?)。 3. 函數返回信息 調用該函數時若無錯誤發(fā)生,則 getpeername(?)函數返回0。 ● ?name:傳出參數 , 指向返回的遠程協(xié)議地址 。 第 8章 Winsock API 獲得與套接口相連的遠程協(xié)議地址 ——getpeername(?) 1. 函數格式 getpeername(?)函數的格式如下: int getpeername( SOCKET s, struct sockaddr FAR* name, int FAR* namelen )。主機名的形式取決于 Windows Sockets系統(tǒng)的實現(xiàn) , 它可能是一個簡單的主機名 , 或者是一個域名 。 ● ?WSAEINPROGRESS:一個阻塞的 Windows Sockets操作正在進行 。
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1