![情境42消息隊(duì)列管理程序設(shè)計(jì)2_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/7780f392-50ee-4aeb-bb36-aed91b345e00/7780f392-50ee-4aeb-bb36-aed91b345e001.gif)
![情境42消息隊(duì)列管理程序設(shè)計(jì)2_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/7780f392-50ee-4aeb-bb36-aed91b345e00/7780f392-50ee-4aeb-bb36-aed91b345e002.gif)
![情境42消息隊(duì)列管理程序設(shè)計(jì)2_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/7780f392-50ee-4aeb-bb36-aed91b345e00/7780f392-50ee-4aeb-bb36-aed91b345e003.gif)
![情境42消息隊(duì)列管理程序設(shè)計(jì)2_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/7780f392-50ee-4aeb-bb36-aed91b345e00/7780f392-50ee-4aeb-bb36-aed91b345e004.gif)
![情境42消息隊(duì)列管理程序設(shè)計(jì)2_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/7780f392-50ee-4aeb-bb36-aed91b345e00/7780f392-50ee-4aeb-bb36-aed91b345e005.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、整理課件消息隊(duì)列管理程序設(shè)計(jì)(消息隊(duì)列管理程序設(shè)計(jì)(2)網(wǎng)絡(luò)通信程序的框架情境三:情境三:整理課件本次講授內(nèi)容本次講授內(nèi)容網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念CAsyncSocket網(wǎng)絡(luò)通信程序設(shè)計(jì)框架CSocket網(wǎng)絡(luò)通信程序設(shè)計(jì)框架字符串整理課件一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念1.近年來(lái),利用Internet進(jìn)行網(wǎng)際間通訊,在WWW瀏 覽、FTP、Gopher這些常規(guī)服務(wù),以及在網(wǎng)絡(luò)電話、多媒體會(huì)議等這些對(duì)實(shí)時(shí)性要求嚴(yán)格 的應(yīng)用中成為研究的熱點(diǎn),而且已經(jīng)是必需的了。2.Windows環(huán)境下進(jìn)行通訊程序設(shè)計(jì)的最基本方法是應(yīng)用Windows Sockets實(shí)現(xiàn)進(jìn)程間的通訊,為
2、此微軟提供了大量基于Windows Sockets的通訊API,如WinSockAPI、WinInetAPI和ISAPI,并一直致力于開(kāi)發(fā)更快、 更容易的通訊API,將其和MFC集成在一起以使通訊編程越來(lái)越容易。 整理課件一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念1. 常規(guī)網(wǎng)絡(luò)通信程序設(shè)計(jì)整理課件一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念常規(guī)網(wǎng)絡(luò)通信程序設(shè)計(jì) 對(duì)于許多初學(xué)者來(lái)說(shuō),網(wǎng)絡(luò)通信程序的開(kāi)發(fā),普遍的一個(gè)現(xiàn)象就是覺(jué)得難以入手。許多概念,諸如:同步(Sync)/異步(Async),阻塞(Block)/非阻塞(Unblock)等,初學(xué)者往往迷惑不清,只知其所
3、以而不知起所以然。整理課件一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念常規(guī)網(wǎng)絡(luò)通信程序設(shè)計(jì)同步方式指的是發(fā)送方不等接收方響應(yīng),便接著發(fā)下個(gè)數(shù)據(jù)包的通信方式;而異步指發(fā)送方發(fā)出數(shù)據(jù)后,等收到接收方發(fā)回的響應(yīng),才發(fā)下一個(gè)數(shù)據(jù)包的通信方式 。阻塞套接字是指執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時(shí),直到成功才返回,否則一直阻塞在此網(wǎng)絡(luò)調(diào)用上,比如調(diào)用recv()函數(shù)讀取網(wǎng)絡(luò)緩沖區(qū)中的數(shù)據(jù),如果沒(méi)有數(shù)據(jù)到達(dá),將一直掛在recv()這個(gè)函數(shù)調(diào)用上,直到讀到一些數(shù)據(jù),此函數(shù)調(diào)用才返回; 整理課件一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念常規(guī)網(wǎng)絡(luò)通信程序設(shè)計(jì)非阻塞套接字是指執(zhí)行此套接字的網(wǎng)絡(luò)
4、調(diào)用時(shí),不管是否執(zhí)行成功,都立即返回。比如調(diào)用recv()函數(shù)讀取網(wǎng)絡(luò)緩沖區(qū)中數(shù)據(jù),不管是否讀到數(shù)據(jù)都立即返回,而不會(huì)一直掛在此函數(shù)調(diào)用上。 在實(shí)際Windows網(wǎng)絡(luò)通信軟件開(kāi)發(fā)中,異步非阻塞套接字是用的最多的。平常所說(shuō)的C/S(客戶端/服務(wù)器)結(jié)構(gòu)的軟件就是異步非阻塞模式的。 整理課件一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念微軟MFC網(wǎng)絡(luò)通信程序概述 微軟的MFC把復(fù)雜的WinSock API函數(shù)封裝到類(lèi)里,這使得編寫(xiě)網(wǎng)絡(luò)應(yīng)用程序更容易。CAsyncSocket類(lèi)逐個(gè)封裝了WinSock API,為高級(jí)網(wǎng)絡(luò)程序員 提供了更加有力而靈活的方法。 MFC給出 了CSocket
5、類(lèi),這個(gè)類(lèi)是由CAsyncSocket類(lèi)繼承下來(lái)的,它提供了比CAsyncSocket更高層的WinSock API接口。 Csocket類(lèi)和CsocketFile類(lèi)可以與Carchive類(lèi)一起合作來(lái)管理發(fā)送和接收的數(shù)據(jù),這使管理數(shù)據(jù)收發(fā)更加便利。 整理課件一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念一、網(wǎng)絡(luò)通信程序設(shè)計(jì)的基本概念微軟MFC網(wǎng)絡(luò)通信程序概述CSocket對(duì)象提供阻塞模式,這對(duì)于Carchive的同步操作是至關(guān)重要的。阻塞函數(shù)(如Receive()、Send()、ReceiveFrom()、SendTo() 和Accept())直到操作完成后才返回控制權(quán) 。因此如果需要低層控制和高效率,就使用
6、CasyncSock類(lèi);如果需要方便,則可使用Csocket類(lèi)。在Win32環(huán)境下,如果要使用具有阻塞性質(zhì)的套接字,應(yīng)該放在獨(dú)立的工作線程中處理,利用多線程的方法使阻塞不至于干擾其他線程,也不會(huì)把CPU時(shí)間浪費(fèi)在阻塞上。多線程的方法既可以使程序員享受CSocket帶 來(lái)的簡(jiǎn)化編程的便利,也不會(huì)影響用戶界面對(duì)用戶的反應(yīng)。 整理課件二、二、CAsyncSocket網(wǎng)絡(luò)程序設(shè)計(jì)框架 在一個(gè)MFC應(yīng)用程序中,要想輕松處理多個(gè)網(wǎng) 絡(luò)協(xié)議,而又不犧牲靈活性時(shí),可以考慮使用CAsyncSocket類(lèi),它的效率比CSocket 類(lèi)要高。CAsyncSocket類(lèi)針對(duì)字節(jié)流型套接字的編程模型簡(jiǎn)述如下: 1.構(gòu)造
7、一個(gè)CAsyncSocket對(duì)象,并用這個(gè) 對(duì)象的Create成員函數(shù)產(chǎn)生一個(gè)Socket句柄 。 CAsyncSocket sock; /使用默認(rèn)參數(shù)產(chǎn)生一個(gè)字節(jié)流套接字Sock.Create(); 。 CAsyncSocket*pSocket=newCAsyncSocket;intnPort=27;pSocket-Create(nPort,SOCK-DGRAM); 。 整理課件二、二、CAsyncSocket網(wǎng)絡(luò)程序設(shè)計(jì)框架1. 構(gòu)造一個(gè)CAsyncSocket對(duì)象,并用這個(gè) 對(duì)象的Create成員函數(shù)產(chǎn)生一個(gè)Socket句柄 。 第一種方法在棧上產(chǎn)生一個(gè)CAsyncSocket對(duì)象, 而
8、第二種方法在堆上產(chǎn)生CAsyncSocket對(duì)象;第一種方法中Create()成員函數(shù)用缺省參數(shù)產(chǎn)生一個(gè)字節(jié)流套接字,第二種方法中用Create()成員函數(shù)在指定的端口產(chǎn)生一個(gè)數(shù)字報(bào)套接字。 整理課件二、二、CAsyncSocket網(wǎng)絡(luò)程序設(shè)計(jì)框架1.構(gòu)造一個(gè)CAsyncSocket對(duì)象,并用這個(gè) 對(duì)象的Create成員函數(shù)產(chǎn)生一個(gè)Socket句柄 。BOOL Create( UINT nSocketPort = 0, int nSocketType = SOCK_STREAM,LPCTSTR lpszSocketAddress = NULL ); 該函數(shù)的參數(shù)有:1)端口,UINT類(lèi)型。注意
9、:如果是服務(wù)方,則使 用一個(gè)眾所周知的端口供服務(wù)方連接;如果是客戶方,典型做法是接受默認(rèn)參數(shù),使 套接字可以自主選擇一個(gè)可用端口;2)socket 類(lèi)型,可以是SOCK-STREAM(默認(rèn)值,字節(jié)流)或SOCK-DGRAM(數(shù)據(jù)報(bào)); 3)socket的地址,例如或3。 整理課件二、二、CAsyncSocket網(wǎng)絡(luò)程序設(shè)計(jì)框架通信雙方建立連接關(guān)系 。 如是客戶方程序,用CAsyncSocket Connect()成員函數(shù)連接到服務(wù)方 。 如是服務(wù)方程序,用CAsyncSocket Listen()成員函數(shù)開(kāi)始 監(jiān)聽(tīng),一旦收到連接請(qǐng)求,則調(diào)用CAsyncSocket Ac
10、cept()成員函數(shù)開(kāi)始接收。 注意:CAsyncSocket Accept()成員函數(shù)要用一個(gè)新的并且是空的CAsyncSocket對(duì)象作為它的參數(shù),這里所說(shuō) 的空的指的是這個(gè)新對(duì)象還沒(méi)有調(diào)用Create()成員函數(shù)。 整理課件二、二、CAsyncSocket網(wǎng)絡(luò)程序設(shè)計(jì)框架1. 調(diào)用CAsyncSocket類(lèi)的其他函數(shù),如:Receive()、ReceiveFrom()、Send()和SendTo()等成員函數(shù)進(jìn)行數(shù)據(jù)通信。2. 通訊結(jié)束后,銷(xiāo)毀CAsyncSocket對(duì)象。如果是在棧上產(chǎn)生的CAsyncSocket對(duì)象,則對(duì)象超出定義的范圍時(shí)自動(dòng)被析構(gòu);如果是在堆上產(chǎn)生,也就是用了new
11、這個(gè)操作符,則必須使用delete操作符銷(xiāo)毀CAsyncSocket 對(duì)象。 整理課件三、三、CSocket網(wǎng)絡(luò)程序設(shè)計(jì)框架 使用CSocket對(duì)象涉及CArchive和CSocketFile 類(lèi)對(duì)象。以下介紹的針對(duì)字節(jié)流型套接字的操作步驟中,只有第3步對(duì)于客戶方和服務(wù)方操作是不同的,其他步驟都相同。1.構(gòu)造一個(gè)CSocket對(duì)象 。 2.使用這個(gè)對(duì)象的Create()成員函數(shù)產(chǎn)生一個(gè)socket對(duì)象。 在客戶方程序中,除非需要數(shù)據(jù)報(bào)套接字,Create()函數(shù)一般情況下應(yīng)該使用默認(rèn)參數(shù)。 而對(duì)于服務(wù)方程序,必須在調(diào)用Create時(shí)指定一個(gè)端口。 需要注意的是,Carchive類(lèi)對(duì)象不能與數(shù)據(jù)
12、報(bào)(UDP)套接字一起工作。 整理課件三、三、CSocket網(wǎng)絡(luò)程序設(shè)計(jì)框架通信雙方建立連接。 如果是客戶方套接字,則調(diào)用CAsyncSocket Connect()函數(shù)與服務(wù)方套接字連接。 如果是服務(wù)方套接字,則調(diào)用CAsyncSocket Listen()開(kāi)始監(jiān)聽(tīng)來(lái)自客戶方的連接請(qǐng)求,收到連接請(qǐng)求后,調(diào)用CAsyncSocket Accept()函數(shù)接受請(qǐng)求,建立連接。 請(qǐng)注意Accept()成員函數(shù)需要一個(gè)新的并且為空的CSocket對(duì)象作為它的參數(shù)。 整理課件三、三、CSocket網(wǎng)絡(luò)程序設(shè)計(jì)框架1. 產(chǎn)生一個(gè)CSocketFile對(duì)象,并把它與CSocket 對(duì)象關(guān)聯(lián)起來(lái) 。 2. 為接收和發(fā)送數(shù)據(jù)各產(chǎn)生一個(gè)CArchive 對(duì)象,把它們與CSocketFile對(duì)象關(guān)聯(lián)起來(lái)。切記CArchive是不能和數(shù)據(jù)報(bào)套接字一起工作的。 3. 使用CArchive對(duì)象的Read()、Write()等函數(shù)在客戶與服務(wù)方傳送數(shù)據(jù)。 4. 通訊完畢后,銷(xiāo)毀CArchive、CSocketFile和CSocket對(duì)象。 整理課件四、四、字符串1. 字符串。 字符串是由某字符集上的字符所組成的任何有限字符序列。 當(dāng)一個(gè)字符串不包含任何字符時(shí),稱(chēng)為空字符串
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代眼科醫(yī)院的網(wǎng)絡(luò)與移動(dòng)營(yíng)銷(xiāo)
- 電動(dòng)汽車(chē)保養(yǎng)延長(zhǎng)電池壽命的關(guān)鍵
- 生物信息學(xué)在現(xiàn)代醫(yī)學(xué)研究中的作用
- 現(xiàn)代企業(yè)品牌建設(shè)與營(yíng)銷(xiāo)策略
- 新北師大版數(shù)學(xué)一年級(jí)下冊(cè)《美麗的田園》聽(tīng)評(píng)課記錄
- 【基礎(chǔ)卷】同步分層練習(xí):四年級(jí)下冊(cè)語(yǔ)文第2課《鄉(xiāng)下人家》(含答案)
- 湘教版數(shù)學(xué)七年級(jí)上冊(cè)3.3《一元一次方程模型的應(yīng)用》聽(tīng)評(píng)課記錄5
- 【基礎(chǔ)卷】同步分層練習(xí):四年級(jí)下冊(cè)語(yǔ)文第16課《海上日出》(含答案)
- 現(xiàn)代家居裝飾藝術(shù)與心理舒適度研究
- 蘇科版數(shù)學(xué)九年級(jí)上冊(cè)4.2.3《等可能條件下的概率(一)》聽(tīng)評(píng)課記錄
- GB/T 25922-2023封閉管道中流體流量的測(cè)量用安裝在充滿流體的圓形截面管道中的渦街流量計(jì)測(cè)量流量
- 培訓(xùn)-責(zé)任心課件
- 最高人民法院婚姻法司法解釋?zhuān)ǘ┑睦斫馀c適用
- 關(guān)于醫(yī)保應(yīng)急預(yù)案
- 安徽杭富固廢環(huán)保有限公司10萬(wàn)噸工業(yè)廢物(無(wú)機(jī)類(lèi))資源化利用及無(wú)害化處置項(xiàng)目環(huán)境影響報(bào)告書(shū)
- 新人教版五年級(jí)上冊(cè)數(shù)學(xué)應(yīng)用題大全doc
- 商業(yè)綜合體市場(chǎng)調(diào)研報(bào)告
- GB/T 42096-2022飛機(jī)耐火電纜性能要求
- 2022年版義務(wù)教育勞動(dòng)課程標(biāo)準(zhǔn)學(xué)習(xí)培訓(xùn)解讀課件筆記
- 2022年中國(guó)止血材料行業(yè)概覽:發(fā)展現(xiàn)狀對(duì)比分析研究報(bào)告(摘要版) -頭豹
- 優(yōu)秀分包商評(píng)選評(píng)分標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論