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

正文內(nèi)容

第9章高級(jí)網(wǎng)絡(luò)編程api(文件)

 

【正文】 k。 TCHAR buff[4096]。 21. OnReceive( )函數(shù) OnReceive(?)函數(shù)格式如下: virtual void OnReceive( int nErrorCode )。 19. OnConnect()函數(shù) OnConnect(?)函數(shù)格式如下: virtual void OnConnect( int nErrorCode )。 該函數(shù)是一個(gè)需要重載的回調(diào)函數(shù) , 當(dāng)一個(gè)套接口可能需要與另一端建立連接時(shí) , 可以調(diào)用此函數(shù)處理相應(yīng)的消息 。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 16. Listen()函數(shù) Listen(?)函數(shù)格式如下: BOOL Listen( int nConnectionBacklog = 5 )。 該函數(shù)的作用與 GetSockOpt(?)函數(shù)相反 , 用于設(shè)置一個(gè)套接口的選項(xiàng) 。 該函數(shù)用于返回一個(gè)套接口的選項(xiàng) ?;? BOOL GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen )。 遠(yuǎn)程套接口的 IP地址和端口號(hào)分別由 rPeerAddress和rPeerPort參數(shù)返回 , 也可以由指向 SOCKADDR結(jié)構(gòu)的參數(shù) lpSockAddr返回 。 rPeerAddress, UINTamp。 如果沒(méi)有與此套接口關(guān)聯(lián)的 CAsyncSocket對(duì)象 , 則返回值為空(NULL)。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 8. Detach( )函數(shù) Detach(?)函數(shù)格式如下: SOCKET Detach(?)。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 第三個(gè)參數(shù) lEvent用來(lái)指定一個(gè)將為應(yīng)用程序生成通知的事件 。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API Create(?)函數(shù)中 , 第一個(gè)參數(shù) nSocketPort用于指定一個(gè)分配給套接口的端口號(hào) , 其默認(rèn)值為 0, 其真正的含義是告訴系統(tǒng)可以由系統(tǒng)給該套接口分配一個(gè)端口號(hào) 。 它有兩種調(diào)用格式:第一種調(diào)用格式使用套接口 、 端口號(hào)和地址 , 且地址使用參數(shù)為字符串型的地址參數(shù) (如 “ ”)或點(diǎn)分十進(jìn)制的地址 (如 “ ”);第二種調(diào)用格式提供 SOCKADDR結(jié)構(gòu)類型的地址參數(shù) 。 Close(?)函數(shù)的 行 為 取 決 于 套 接 口 的 SO_LINGER 和SO_DONTLINGER選項(xiàng) 。它有兩種調(diào)用格式:第一種調(diào)用格式提供套接口、端口號(hào)和地址,使用的是字符串形式的地址,一般常用這種調(diào)用方法;第二種調(diào)用格式提供SOCKADDR結(jié)構(gòu)類型的地址參數(shù)。 hSocket參數(shù)為套接口句柄 。 該函數(shù)用于在套接口準(zhǔn)備好之后請(qǐng)求事件通知 。 rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL )。第 9章 高級(jí)網(wǎng)絡(luò)編程 API 第 9章 高級(jí)網(wǎng)絡(luò)編程 API MFC提供的 Winsock類 信報(bào) API(MAPI) WinI API 其他網(wǎng)絡(luò)程序設(shè)計(jì) API 習(xí)題 第 9章 高級(jí)網(wǎng)絡(luò)編程 API MFC提供的 Winsock類 CAsyncSocket類 CAsyncSocket類封裝了一些基本的 Windows Sockets API函數(shù) , 它提供了與較低層 Windows Sockets對(duì)話的接口 ,一般適合于有一定基礎(chǔ)的網(wǎng)絡(luò)編程者使用 , 可方便地進(jìn)行底層的網(wǎng)絡(luò)事件通知及信息回叫控制等操作 。 該函數(shù)用于在一個(gè)套接口上接受連接請(qǐng)求 。事件的含義見(jiàn)表 85, 其對(duì)應(yīng)的數(shù)值如表 91所示 。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 4. Bind( )函數(shù) Bind(?)函數(shù)格式如下: BOOL Bind( UINT nSocketPort, LPCTSTR lpszSocketAddress = NULL )。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 5. Close( )函數(shù) Close(?)函數(shù)格式如下: virtual void Close(?)。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 6. Connect( )函數(shù) Connect(?)函數(shù)格式如下: BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort )。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 7. Create( )函數(shù) Create(?)函數(shù)格式如下: BOOL Create(UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT ?| FD_CONNECT | FD_CLOSE, LPCTSTR lpszSocketAddress = NULL )。 在開(kāi)發(fā)服務(wù)器程序時(shí) , 應(yīng)該明確地分配一個(gè)端口號(hào) (即前面介紹的 “ 眾所周知 ” 的端口號(hào) ), 這樣客戶就可以方便地使用該端口號(hào)與服務(wù)器連接 。 在默認(rèn)情況下 , 所有的事件都會(huì)生成通知 。 該函數(shù)的作用是將上一次建立關(guān)聯(lián)的套接口句柄斷開(kāi) ,并返回此套接口句柄 。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 10. GetLastError( )函數(shù) GetLastError(?)函數(shù)格式如下: static int GetLastError(?)。 rPeerPort )。 12. GetSockName( )函數(shù) GetSockName(?)函數(shù)格式如下: BOOL GetSockName(CStringamp。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 該函數(shù)的作用與 GetPeerName(?)函數(shù)類似 , 對(duì)于給定的套接口 , 就可以返回其 IP地址和端口號(hào) 。 獲取的選項(xiàng)值由參數(shù)lpOptionValue確定 , 其長(zhǎng)度由 lpOptionLen指針指向的值確定;nOptionName參數(shù)指出要獲取的選項(xiàng)名 , nLevel參數(shù)說(shuō)明選項(xiàng)級(jí)別 , 默認(rèn)的選項(xiàng)級(jí)別是 SOL_SOCKET。 要設(shè)置的選項(xiàng)值由參數(shù) lpOptionValue確定 ,其他參數(shù)的含義與 GetSockOpt(?)函數(shù)相同 。 該函數(shù)用于連接的監(jiān)聽(tīng) , 當(dāng)調(diào)用成功時(shí)返回一個(gè)非 0的值 。參數(shù) nErrorCode指出最新的錯(cuò)誤代碼 。 該函數(shù)是一個(gè)需要重載的回調(diào)函數(shù) , 當(dāng)一個(gè)套接口成功建立連接或連接失敗時(shí) , 可以調(diào)用此函數(shù)處理相應(yīng)的消息 。 該函數(shù)是一個(gè)需要重載的回調(diào)函數(shù),當(dāng)一個(gè)套接口已經(jīng)準(zhǔn)備好數(shù)據(jù),并可以由函數(shù) Receive(?)接收時(shí),就可以調(diào)用此函數(shù)處理相應(yīng)的消息。 int nRead。 case SOCKET_ERROR: if (GetLastError(?) != WSAEWOULDBLOCK) { AfxMessageBox (Error occurred)。 //terminate the string CString szTemp(buff)。 } 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 22. OnSend( )函數(shù) OnSend(?)函數(shù)格式如下: virtual void OnSend( int nErrorCode )。 // int m_nBytesBufferSize。 wsprintf(szError, Server Socket failed to send: %d, GetLastError(?))。 } } 第 9章 高級(jí)網(wǎng)絡(luò)編程 API if (m_nBytesSent == m_nBytesBufferSize) { m_nBytesSent = m_nBytesBufferSize = 0。 該函數(shù)用于獲得已經(jīng)與當(dāng)前套接口建立連接的遠(yuǎn)程套接口發(fā)送的數(shù)據(jù) , 該數(shù)據(jù)存入 lpBuf緩沖區(qū)中 。 或 int ReceiveFrom( void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, ?int* lpSockAddrLen, int nFlags = 0 )。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 26. SendTo( )函數(shù) SendTo(?)函數(shù)格式如下: int SendTo( const void* lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0 )。 調(diào)用該函數(shù)并不影響套接口的打開(kāi)狀態(tài) , 它不關(guān)閉套接口 , 只可以控制是否能夠繼續(xù)發(fā)送或接收數(shù)據(jù) , 即是否允許繼續(xù)調(diào)用 Send(?)和 Receive(?)函數(shù) 。 同時(shí) , 它支持模塊化的后臺(tái)信息處理 , 解決了CAsyncSocket中較難克服的多線程處理問(wèn)題 。 舉例說(shuō)明如下 。 BOOL CSockThread::InitInstance(?) { // Attach the socket object to the socket handle // in the context of this thread. (hConnected)。 // Detach the newly accepted socket and save // the SOCKET handle. 第 9章 高級(jí)網(wǎng)絡(luò)編程 API hConnected = (?)。 該函數(shù)的三個(gè)參數(shù)都有默認(rèn)值 , 對(duì)客戶機(jī)套接口來(lái)說(shuō) , 使用默認(rèn)參數(shù)就可以了 。 當(dāng)一個(gè)服務(wù)器有多個(gè) IP地址時(shí) , 可以為套接口指定一個(gè)特定的地址 。 如果沒(méi)有與此套接口關(guān)聯(lián)的對(duì)象 ,則返回 NULL。 如果套接口處于阻塞狀態(tài) , 那么調(diào)用CancelBlockingCall(?)函數(shù)后 , 所有套接口的阻塞請(qǐng)求被刪除 。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 信 報(bào) 感 知 應(yīng) 用 程 序可 傳 遞 信 報(bào) 的 應(yīng) 用 程 序基 于 信 報(bào) 的 應(yīng) 用 程 序客 戶 應(yīng) 用 程 序系 統(tǒng) 服 務(wù) 程 序M A P I圖 91 MAPI組件結(jié)構(gòu)圖 第 9章 高級(jí)網(wǎng)絡(luò)編程 API MFC對(duì) MAPI的支持 1. 使用 VC++提供的 AppWizard 利用 AppWizard創(chuàng)建一個(gè) MAPI應(yīng)用的過(guò)程非常簡(jiǎn)單 , 但要注意在 MFC AppWizardStep 4 of 6對(duì)話框中要確認(rèn)對(duì) MAPI項(xiàng)的選擇 , 如圖 92所示 。但一定要注意,如果沒(méi)有設(shè)置默認(rèn)的郵件處理程序,則在運(yùn)行“傳送 …” 命令時(shí)將彈出有關(guān)郵件設(shè)置的提示信息,要求設(shè)置默認(rèn)郵件處理程序。 該菜單項(xiàng)的 ID可以從屬性中選擇ID_FILE_SEND_MAIL(當(dāng)然用戶也可以輸入其他 ID, 但該 ID是一個(gè)標(biāo)準(zhǔn)的 ID命令 )。 typedef short CMC_sint16。 typedef void far * CMC_buffer。 typedef CMC_uint32 CMC_return_code。 typedef CMC_uint32 CMC_ui_id。 調(diào)用 cmc_logon(?)函數(shù)可以創(chuàng)建一個(gè) CMC對(duì)話 , cmc_logon(?)函數(shù)將利用信報(bào)服務(wù)程序建立與郵件服務(wù)器的連接 , 檢查用戶的登錄號(hào) (即標(biāo)識(shí)用戶 ), 設(shè)置郵件服務(wù)器的屬性參數(shù) , 并返回一個(gè)對(duì)話句柄 。 CMC_extension結(jié)構(gòu)的定義如下: typedef struct { CMC_uint32 item_code。 } CMC_extension。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 當(dāng)要結(jié)束一個(gè)對(duì)話時(shí) , 應(yīng)該調(diào)用 cmc_logoff(?)函數(shù)來(lái)關(guān)閉一個(gè)對(duì)話 。39。 CMC_Boolean cmcUiAvail。 if(cmcStatus!=CMC_SUCCESS) { //進(jìn)行錯(cuò)誤處理 …… } 第 9章 高級(jí)網(wǎng)絡(luò)編程 API else if(cmcUiAvail) printf(39。)。cmcSession, //返回對(duì)話 NULL //無(wú)擴(kuò)展 )。 第 9章 高級(jí)網(wǎng)絡(luò)編程 API 該函數(shù)的大多數(shù)參數(shù)是字符串型的 。要使用信報(bào)服務(wù)提供的對(duì)話框,必須把 send_doc_flags參數(shù)的值設(shè)置為CMC_SEND
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1