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

正文內(nèi)容

tcp(ip)協(xié)議與網(wǎng)絡(luò)編程(編輯修改稿)

2024-11-12 16:44 本頁面
 

【文章內(nèi)容簡介】 OCKET編程 ? 基于 UDP的 SOCKET編程 ? 參考資料 2021/11/10 48 基于 TCP的 SOCKET編程 服務(wù)器端程序: 創(chuàng)建套接字( socket)。 將套接字綁定到一個(gè)本地地址和端口上( bind)。 將套接字設(shè)為監(jiān)聽模式,準(zhǔn)備接收客戶請求( listen)。 等待客戶請求到來;當(dāng)請求到來后,接受連接請求,返回一個(gè)新的對應(yīng)于此次連接的套接字( accept)。 用返回的套接字和客戶端進(jìn)行通信( send/recv)。 返回,等待另一客戶請求。 關(guān)閉套接字。 客戶端程序: 創(chuàng)建套接字( socket)。 向服務(wù)器發(fā)出連接請求( connect)。 和服務(wù)器端進(jìn)行通信( send/recv)。 關(guān)閉套接字。 2021/11/10 49 ? 初始化 SOCKET int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData )。 參數(shù)說明 : ? wVersionRequested參數(shù)用于指定準(zhǔn)備加載的Winsock庫的版本。高位字節(jié)指定所需要的 Winsock庫的副版本,而低位字節(jié)則是主版本。可用MAKEWORD(x,y)(其中, x是高位字節(jié), y是低位字節(jié) )方便地獲得 wVersionRequested的正確值。 ? lpWSAData參數(shù)是指向 WSADATA結(jié)構(gòu)的指針,WSAStartup用其加載的庫版本有關(guān)的信息填在這個(gè)結(jié)構(gòu)中。 相關(guān)函數(shù)說明 2021/11/10 50 ? WSADATA結(jié)構(gòu)定義如下: typedef struct WSAData { WORD wVersion。 WORD wHighVersion。 char szDescription[WSADESCRIPTION_LEN+1]。 char szSystemStatus[WSASYS_STATUS_LEN+1]。 unsigned short iMaxSockets。 unsigned short iMaxUdpDg。 char FAR * lpVendorInfo。 } WSADATA, *LPWSADATA。 相關(guān)函數(shù)說明 2021/11/10 51 ? WSADATA各個(gè)字段說明: ? WSAStartup把第一個(gè)字段 wVersion設(shè)成打算使用的 Winsock版本。 ? wHighVersion 參數(shù)容納的是現(xiàn)有的 Winsock庫的最高版本。記住,這兩個(gè)字段中,高位字節(jié)代表的是 Winsock副版本,而低位字節(jié)代表的則是Winsock主版本。 ? szDescription和 szSystemStatus這兩個(gè)字段由特定的 Winsock實(shí)施方案設(shè)定,事實(shí)上沒有用。 相關(guān)函數(shù)說明 2021/11/10 52 ? 不要使用下面這兩個(gè)字段: iMaxSockets和iMaxUdpDg,它們是假定同時(shí)最多可打開多少套接字和數(shù)據(jù)報(bào)的最大長度。然而,要知道數(shù)據(jù)報(bào)的最大長度應(yīng)該通過 WSAEnumProtocols來查詢協(xié)議信息。同時(shí)最多可打開套接字的數(shù)目不是固定的,很大程度上和可用物理內(nèi)存的多少有關(guān)。 ? 最后, lpVendorInfo字段是為 Winsock實(shí)施方案有關(guān)的指定廠商信息預(yù)留的。任何一個(gè) Win32平臺上都沒有使用這個(gè)字段。 相關(guān)函數(shù)說明 2021/11/10 53 如果 化或沒有被找到, WSAStartup將返回WSASYSNOTREADY。此外這個(gè)函數(shù)允許你的應(yīng)用程序協(xié)商使用某種版本的 WinSock規(guī)范,如果請求的版本等于或高于 DLL所支持的最低版本, WSAData的wVersion成員中將包含你的應(yīng)用程序應(yīng)該使用的版本,它是 DLL所支持的最高版本與請求版本中較小的那個(gè)。反之,如果請求的版本低于 DLL所支持的最低版本,WSAStartup將返回 WSAVERNOTSUPPORTED。關(guān)于WSAStartup更詳細(xì)的信息,請查閱 MSDN中的相關(guān)部分。 對于每一個(gè) WSAStartup的成功調(diào)用 (成功加載WinSock DLL后 ),在最后都對應(yīng)一個(gè) WSACleanUp調(diào)用,以便釋放為該應(yīng)用程序分配的資源。 相關(guān)函數(shù)說明 2021/11/10 54 ? WSAStartup 用法 WORD wVersionRequested。 WSADATA wsaData。 int err。 wVersionRequested = MAKEWORD( 1, 1 )。 err = WSAStartup( wVersionRequested, amp。wsaData )。 if ( err != 0 ) { return。 } if ( LOBYTE( ) != 1 || HIBYTE( ) != 1 ) { WSACleanup( )。 return。 } 相關(guān)函數(shù)說明 2021/11/10 55 ? 創(chuàng)建套接字 SOCKET socket ( int af, int type, int protocol )。 ? 參數(shù)說明 第一個(gè)參數(shù) af指定地址族,對于 TCP/IP協(xié)議的套接字,它只能是 AF_INET(也可寫成 PF_INET)。 第二個(gè)參數(shù)指定 Socket類型,對于 Socket,它只支持兩種類型的套接字,SOCK_STREAM指定產(chǎn)生流式套接字,SOCK_DGRAM產(chǎn)生數(shù)據(jù)報(bào)套接字。 第三個(gè)參數(shù)是與特定的地址家族相關(guān)的協(xié)議,如果指定為 0,那么它就會(huì)根據(jù)地址格式和套接字類別,自動(dòng)為你選擇一個(gè)合適的協(xié)議。這是推薦使用的一種選擇協(xié)議的方法。 相關(guān)函數(shù)說明 2021/11/10 56 ? 返回值 如果這個(gè)函數(shù)調(diào)用成功,它將返回一個(gè)新的 SOCKET數(shù)據(jù)類型的套接字描述符。如果調(diào)用失敗,這個(gè)函數(shù)就會(huì)返回一個(gè) INVALID_SOCKET,錯(cuò)誤信息可以通過WSAGetLastError函數(shù)返回。 相關(guān)函數(shù)說明 2021/11/10 57 ? 綁定套接字 int bind ( SOCKET s, const struct sockaddr FAR* name, int namelen )。 ? 參數(shù)說明: 第一個(gè)參數(shù) s指定要綁定的套接字, 第二個(gè)參數(shù)指定了該套接字的本地地址信息,是指向sockaddr結(jié)構(gòu)的指針變量, 由于該地址結(jié)構(gòu)是為所有的地址家族準(zhǔn)備的,這個(gè)結(jié)構(gòu)可能(通常會(huì))隨所使用的網(wǎng)絡(luò)協(xié)議不同而不同,所以,要用第三個(gè)參數(shù)指定該地址結(jié)構(gòu)的長度。 相關(guān)函數(shù)說明 2021/11/10 58 ? 返回值 如果沒有發(fā)生錯(cuò)誤,那么 bind函數(shù)將返回 0;如果這個(gè)函數(shù)調(diào)用失敗,那么將返回 SOCKET_ERROR,錯(cuò)誤信息可以通過 WSAGetLastError函數(shù)返回。 相關(guān)函數(shù)說明 2021/11/10 59 ? Sockaddr結(jié)構(gòu)體說明 struct sockaddr { u_short sa_family。 char sa_data[14]。 }。 sockaddr的第一個(gè)字段 s
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1