網(wǎng)絡(luò)編程復(fù)習(xí)資料_第1頁
網(wǎng)絡(luò)編程復(fù)習(xí)資料_第2頁
網(wǎng)絡(luò)編程復(fù)習(xí)資料_第3頁
網(wǎng)絡(luò)編程復(fù)習(xí)資料_第4頁
網(wǎng)絡(luò)編程復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1. 如果網(wǎng)絡(luò)進(jìn)程間采用基于TCP、UDP協(xié)議的無連接的通信方式,那么必須借助 數(shù)據(jù)報套接字來編程。2. ntohs()函數(shù)的含義是 短整數(shù)網(wǎng)絡(luò)順序轉(zhuǎn)換為本機(jī)順序,用于端口號 。3. TCP和UDP協(xié)議屬于傳輸層協(xié)議,HTTP和FTP則屬于 應(yīng)用 層協(xié)議。4. TCP/IP協(xié)議棧采用 靜態(tài)(全局)分配 和 動態(tài)(本地)分配 相結(jié)合的方法,將TCP和UDP各自的65535個端口號分為保留端口號和自由端口號。5. 為了簡化套接字網(wǎng)絡(luò)編程,MFC提供了兩個套接字類: 阻塞模式 和 非阻塞模式。6. CAsyncSocket類支持Windows消息驅(qū)動機(jī)制,體現(xiàn)在該類對象支持6種網(wǎng)絡(luò)事件。請列舉其中5

2、個網(wǎng)絡(luò)事件, FD-READ事件、 FD-WRITE事件、 FD-ACCEPT事件、 FD-CONNECT事件 和 FD-CLOSE事件 FD-OOB事件 。1. 控制臺程序的入口函數(shù)是 mian函數(shù) 。3. 從套接字所處的地位來講,套接字上連 應(yīng)用進(jìn)程 ,下連 網(wǎng)絡(luò)協(xié)議棧 。4. ntohl()函數(shù)的含義是 長整數(shù)本機(jī)順序轉(zhuǎn)換為網(wǎng)絡(luò)順序,用于IP事件。6. 用于映射命令消息的宏是 ON-COMMAND。用于映射Windows消息宏的前綴是 ON-WM- 。1. FTP協(xié)議的端口號是 21 。2. 在Internet中,用一個三元組可以在全局中唯一地標(biāo)識一個應(yīng)用層進(jìn)程,分別是應(yīng)用層協(xié)議、 本機(jī)

3、IP地址和傳輸層端口號 3. 套接字分為三種,分別是 數(shù)據(jù)報套接字、流式套接字和原始式套接字、4、專門針對Internet通信域,存儲套接字相關(guān)的網(wǎng)絡(luò)地址信息的結(jié)構(gòu)體是 sockaddr_in5、sendto函數(shù)是用于發(fā)送信息的函數(shù),相對應(yīng)的信息接收函數(shù)是 recvfrom()6、消息名以前綴“WM_”打頭的消息是 系統(tǒng)消息7、WinSock應(yīng)用程序開發(fā)的第一步是對WinSock進(jìn)行初始化,調(diào)用的函數(shù)WSAStartup8、CInternetSession類中用于建立與FTP服務(wù)器連接的成員函數(shù)是 GetFtpConnection9、對于非阻塞的套接字工作模式,引入5種“套接字I/O模型”,分

4、別是 選擇模型、事件選擇模型、異步選擇模型、重疊I/O、完成端口10、 監(jiān)聽函數(shù)調(diào)用listen(s,5),其中參數(shù)5的含義是 將套接字s加入到集合set中 。11、為了更方便地利用Windows系統(tǒng)的消息驅(qū)動機(jī)制,MFC提供了兩個套接字類,實(shí)現(xiàn)了對套接字函數(shù)的封裝,分別是 阻塞模式和非阻塞模式12、socket(AF_INET,SOCK_DGRAM,0);該函數(shù)的功能是 創(chuàng)建一個數(shù)據(jù)報套接字1、HTTP協(xié)議的端口號是 80。2、針對各種通信域的套接字,存儲相應(yīng)地址信息的結(jié)構(gòu)體 sockaddr_in。3、在MFC中,線程分為兩種,分別是工作線程和 用戶界面線程 4、MFC消息類型有三種,分別

5、是Windows消息、控制通知消息、命令消息5、用于把一定范圍的命令消息映射到一個消息處理函數(shù)的宏是 ON_COMMAND_RANGE。6、CFtpConnection類中用于將本地文件上傳到服務(wù)器的函數(shù)是PutFile7、用于將套接字s加入到集合set中的宏是FD_SET(s,*set)8、在WinSock中,錯誤代碼可以通過調(diào)用WSAGetLastError()函數(shù)得到。9、監(jiān)聽函數(shù)調(diào)用listen(s,3),其中參數(shù)3的含義是等待隊(duì)列的長度。10、WinSock進(jìn)行I/O操作的兩種工作模式分別是阻塞和非阻塞。11、TCP和UDP協(xié)議屬于傳輸層協(xié)議,RPC和FTP則屬于應(yīng)用層協(xié)議12、異步

6、套接字類中用于通知有數(shù)據(jù)可讀的事件是 FD_READ,對應(yīng)的回調(diào)函數(shù)是 OnReceive ;用于通知可以寫數(shù)據(jù)的事件是 FD_WRITE,對應(yīng)的回調(diào)函數(shù)是OnSend 。簡要說明套接字的應(yīng)用場合。(1)不管是采用對等模式或者客戶機(jī)/服務(wù)器模式,通信雙方的應(yīng)用程序都需要開發(fā)。(2)雙方所交換數(shù)據(jù)的結(jié)構(gòu)和交換數(shù)據(jù)的順序有特定的要求,不符合現(xiàn)在成熟的應(yīng)用層協(xié)議,甚至需要自己去開發(fā)應(yīng)用層協(xié)議,自己設(shè)計(jì)最適合的數(shù)據(jù)結(jié)構(gòu)和信息交換規(guī)程。套接字編程分為面向連接和無連接兩種類型,請說明面向連接套接字編程中客戶端的編程流程。創(chuàng)建流式套接字,發(fā)送連接請求,發(fā)送數(shù)據(jù),接收數(shù)據(jù),關(guān)閉套接字。解釋進(jìn)程和線程的概念,簡

7、要說明如何正常終止線程和提前終止線程。 進(jìn)程是處于運(yùn)行過程中的程序?qū)嵗?,是操作系統(tǒng)調(diào)度和分配資源的基本單位。線程是進(jìn)程的一個實(shí)體,執(zhí)行和調(diào)度單位。正常終止線程:在函數(shù)執(zhí)行完畢時能夠退出控制函數(shù),并返回一個用來表示終止原因的值。提前終止線程:在線程內(nèi)部調(diào)用AfxEndThread函數(shù),便可強(qiáng)迫終止。 簡要說明select 選擇模型的操作步驟。首先,檢查系統(tǒng)中是否有一個或多個套接字實(shí)例;其次,檢查找到Winsock實(shí)現(xiàn)是否可用,主要確認(rèn)版本號;再者,建立Winsock實(shí)現(xiàn)與應(yīng)用程序的聯(lián)系;最后,函數(shù)成功返回,返回必要的參數(shù)。簡要說明WSAStartup函數(shù)的初始化過程。首先,檢查系統(tǒng)中是否有一個或

8、多個套接字實(shí)例;其次,檢查找到Winsock實(shí)現(xiàn)是否可用,主要確認(rèn)版本號;再者,建立Winsock實(shí)現(xiàn)與應(yīng)用程序的聯(lián)系;最后,函數(shù)成功返回,返回必要的參數(shù)。什么是阻塞問題?UNIX操作系統(tǒng)下是如何應(yīng)對的?阻塞是指一個進(jìn)程執(zhí)行了一個函數(shù)或者系統(tǒng)調(diào)用,該函數(shù)由于某種原因不能立即完成,因而不能返回調(diào)用它的進(jìn)程,導(dǎo)致進(jìn)程受控于這個函數(shù)而處于等待的狀態(tài),進(jìn)程的這種狀態(tài)稱為阻塞。 利用UNIX操作系統(tǒng)的FORK()系統(tǒng)調(diào)用,編制多進(jìn)程并發(fā)執(zhí)行的服務(wù)器程序。套接字編程分為面向連接和無連接兩種類型,請說明面向連接套接字編程中服務(wù)器端的編程流程。創(chuàng)建流式套接字,綁定該套接字,啟動套接字監(jiān)聽,接受客戶端的連接請求

9、,讀寫數(shù)據(jù),關(guān)閉套接字。在全局中唯一地來標(biāo)識網(wǎng)絡(luò)中通信的兩個進(jìn)程需要五元組,請說明五元組由哪幾部分組成。 傳輸層協(xié)議,本機(jī)IP地址,本地機(jī)傳輸層端口,遠(yuǎn)地機(jī)IP地址,遠(yuǎn)地址傳輸層端口簡要說明WSAEventSelect事件選擇模型的操作步驟。 創(chuàng)建事件對象句柄;關(guān)聯(lián)套接字和事件對象,注冊關(guān)心的網(wǎng)絡(luò)事件;等待網(wǎng)絡(luò)事件觸發(fā)事件對象句柄的工作狀態(tài);檢查套接字上所發(fā)生的網(wǎng)絡(luò)事件類型;處理網(wǎng)絡(luò)事件請簡要說明基于Internet的C/S模式應(yīng)用程序的特點(diǎn)。非對稱性:服務(wù)器提供服務(wù),客戶端使用服務(wù);對等性:客戶機(jī)和服務(wù)器公有一套約定;服務(wù)器的被動性:不主動提供服務(wù);客戶機(jī)的主動性:客戶機(jī)主動向服務(wù)器提出請求

10、;說明CAsyncSocket異步套接字類中用于通知數(shù)據(jù)可讀和可寫的事件及回調(diào)函數(shù)可讀事件:FD_READ事件通知,通知有數(shù)據(jù)可讀;回調(diào)函數(shù)是OnReceive(int nErrorCode)。可寫事件:FD_WRITE事件通知,通知有數(shù)據(jù)可寫;回調(diào)函數(shù)是OnSend(int nErrorCode)。1. 能引起阻塞的套接字調(diào)用有哪些?ACCEPT()等待接收客戶端的連接請求;RECV和RECVFORM用于接收數(shù)據(jù)的函數(shù);SEND和SENDTO用于發(fā)送數(shù)據(jù)的函數(shù);CONNECT客戶端連接服務(wù)器的函數(shù);SELECT用于判斷符合條件套接字的函數(shù)。2. 請描述C/S模式的無連接套接字編程流程。(1)

11、服務(wù)器先啟動,等待客戶端發(fā)數(shù)據(jù);(2)服務(wù)器進(jìn)程將套接字綁定到固定端口;(3)客戶端使用自由分配端口號;(4)客戶端首先發(fā)送數(shù)據(jù),攜帶對方的地址;(5)服務(wù)器接收數(shù)據(jù),同時獲取到發(fā)送端地址,便可回發(fā)數(shù)據(jù)。3. 說明WinSock兩種工作模式的優(yōu)缺點(diǎn)。WinSock有兩種工作模式:阻塞和非阻塞模式。阻塞模式:經(jīng)過調(diào)用、等待和返回過程。如果不滿足網(wǎng)絡(luò)條件,會永遠(yuǎn)阻塞。非阻塞模式:函數(shù)調(diào)用后會立即返回,不管是否成功。如果不滿足網(wǎng)絡(luò)條件,會造成資源浪費(fèi),很多無功而返的情況。簡述WSAAsyncSelect異步I/O模型的編程步驟。用createwindow函數(shù)創(chuàng)建一個窗口回調(diào)例程;設(shè)置好窗口的框架后,

12、開始創(chuàng)建套接字;調(diào)用異步選擇模型函數(shù)WSAAsyncSelect,并注冊感興趣的事件,指定接收消息的窗口句柄。1什么是線程,什么是進(jìn)程?進(jìn)程是處于運(yùn)行過程中的程序?qū)嵗?,是操作系統(tǒng)調(diào)度和分配資源的基本單位。 一個進(jìn)程實(shí)體由程序代碼、數(shù)據(jù)和進(jìn)程控制塊三部分構(gòu)成。線程是進(jìn)程中的一個實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。2實(shí)現(xiàn)網(wǎng)間進(jìn)程通信必須解決哪些問題?(1)網(wǎng)間進(jìn)程的標(biāo)識問題;(2)如何與網(wǎng)絡(luò)協(xié)議棧連接的問題;(3)協(xié)議的識別問題;(4)不同的通信服務(wù)的問題3舉例說明面向消息的協(xié)議與

13、基于流動協(xié)議有什么不同。 例如甲向乙發(fā)送三個消息,分別是:128、64和32字節(jié)。 面向消息的協(xié)議中,如果接受緩沖區(qū)是256字節(jié),足以接收3條消息,且這三條消息全部達(dá)到。乙仍然需要發(fā)送3條讀取消息。分別返回128、64、32字節(jié),而不用一次讀取來調(diào)用者單個數(shù)據(jù)包。 基于流的消息協(xié)議中,在接收端乙的堆棧把所有進(jìn)來的消息數(shù)據(jù)包聚集在一起,放入堆棧,等待應(yīng)用進(jìn)程讀取。進(jìn)程發(fā)送讀取命令,指定了進(jìn)程接收緩沖區(qū),如果進(jìn)程緩沖區(qū)有256字節(jié),系統(tǒng)馬上返回全部224字節(jié)。4說明用戶和客戶機(jī),服務(wù)器和服務(wù)器類計(jì)算機(jī)的區(qū)別。客戶(client)和服務(wù)器都指的是應(yīng)用進(jìn)程,即計(jì)算機(jī)軟件?!坝脩簟?user)指的是使用

14、計(jì)算機(jī)的人。 服務(wù)器(server)這個術(shù)語來指那些運(yùn)行著的服務(wù)程序。服務(wù)器類計(jì)算機(jī)(server-class computer)這一術(shù)語來稱呼那些運(yùn)行服務(wù)器軟件的強(qiáng)大的計(jì)算機(jī)。5什么是套接字? 答:是應(yīng)用程序通過網(wǎng)絡(luò)協(xié)議棧進(jìn)行通信交互的接口。6說明套接字特點(diǎn)。 答:(1)通信域。套接字通常只和同一域中的套接字交換數(shù)據(jù)。如果數(shù)據(jù)交換要穿越域的邊界,就一定要執(zhí)行某種解釋程序。(2)套接字有三種類型,流式、數(shù)據(jù)包和原始套接字。(3)套接字由應(yīng)用層創(chuàng)建,并為其服務(wù),而后被釋放。(4)使用確定的IP地址和傳輸層端口號。7說明套接字應(yīng)用場合。答:(1)不管是采用對等模式或者客戶機(jī)/服務(wù)器模式,通信雙方的

15、應(yīng)用程序都需要開發(fā)。(2)雙方所交換數(shù)據(jù)的結(jié)構(gòu)和交換數(shù)據(jù)的順序有特定的要求,不符合現(xiàn)在成熟的應(yīng)用層協(xié)議,甚至需要自己去開發(fā)應(yīng)用層協(xié)議,自己設(shè)計(jì)最適合的數(shù)據(jù)結(jié)構(gòu)和信息交換規(guī)程。8什么是阻塞問題?如何對應(yīng)?答:阻塞是指一個進(jìn)程執(zhí)行了一個函數(shù)或者系統(tǒng)調(diào)用,該函數(shù)由于某種原因不能立即完成,因而不能返回調(diào)用它的進(jìn)程,導(dǎo)致進(jìn)程受控于這個函數(shù)而處于等待的狀態(tài),進(jìn)程的這種狀態(tài)稱為阻塞。利用UNIX操作系統(tǒng)的FORK()系統(tǒng)調(diào)用,編制多進(jìn)程并發(fā)執(zhí)行的服務(wù)器程序。9說明WSAStartup函數(shù)初始化過程。(1) 查找WinSock.DLL文件,如果有WinSock實(shí)現(xiàn),則調(diào)入相關(guān)信息。若無,則初始化失敗。返回錯誤

16、信息。(2)。確認(rèn)版本號。(3)建立WinSock同應(yīng)用程序的聯(lián)系。(4)函數(shù)創(chuàng)建成功,在WSAData結(jié)構(gòu)中返回許多信息,否則,通知用戶“初始化失敗”。10多線程機(jī)制在網(wǎng)絡(luò)編程中如何應(yīng)用?如果一個應(yīng)用程序,有多個任務(wù)需要同時進(jìn)行處理,那就最適合使用多線程機(jī)制。對于網(wǎng)絡(luò)上客戶機(jī)軟件,采用多線程的編程技術(shù),能克服在單線程的編程模式下,由于阻塞等待而產(chǎn)生的客戶程序就不能及時響應(yīng)用戶的操作命令的問題。對于網(wǎng)絡(luò)上服務(wù)器軟件,采用多線程的編程技術(shù),能更好地為多個客戶服務(wù)。即便是對于一個客戶,采用多線程機(jī)制也能大大提高應(yīng)用程序的運(yùn)行效率。11使用CAsyncSocket類的一般步驟是什么?序號服務(wù)器(Se

17、rver)客戶機(jī)(Client)1/構(gòu)建一個套接字CAsyncSocket sockSrvr; /構(gòu)建一個套接字CAsyncSocket sockClient;2/創(chuàng)建SOCKET句柄,綁定到指定的端口sockSrvr.Create(nPort);/創(chuàng)建SOCKET句柄,使用默認(rèn)參數(shù)sockClient.Create();3/啟動監(jiān)聽,時刻準(zhǔn)備接受連接請求sockSrvr.Listen();4/請求連接到服務(wù)器sockClient.Connect(strAddr,nport);5/構(gòu)造一個新的空的套接字 CasyncSocket sockRecv;/接收連接 sockSrvr.Accept(s

18、ockRecv);6/接收數(shù)據(jù)sockSrvr.Receive(pBuf,nLen);/發(fā)送數(shù)據(jù)sockClient.Send(pBuf,nLen);7/發(fā)送數(shù)據(jù)sockSrvr.Send(pBuf,nLen);/接收數(shù)據(jù)sockClient.Receive(pBuf,nLen);8/關(guān)閉套接字對象sockSrvr.Close();/關(guān)閉套接字對象sockClient.Close();12使用WinInet類編程的一般步驟是什么?(1)創(chuàng)建CInternetSession類對象,創(chuàng)建并初始化Internet會話。(2)利用CInternetSession類的QueryOption或SetOpt

19、ion成員函數(shù),可以查詢或設(shè)置該類內(nèi)含的Internet請求選項(xiàng),這一步是可選。(3)創(chuàng)建連接類對象,建立CInternetSession對象與網(wǎng)絡(luò)服務(wù)器的連接,也就是應(yīng)用程序與網(wǎng)絡(luò)服務(wù)器的連接。(4)創(chuàng)建文件檢索類對象,對服務(wù)器進(jìn)行檢索 (5)如果需要使用異步操作模式,可以重載CInternetSession類的OnStatusCallback函數(shù),并啟動應(yīng)用程序使用狀態(tài)回調(diào)機(jī)制。重載相關(guān)函數(shù),加入自己的代碼。(6)如果還想更緊密地控制對于服務(wù)器文件的訪問,可以進(jìn)一步創(chuàng)建文件類對象實(shí)例,完成文件查找或文件讀寫操作。(7)創(chuàng)建CInternetException類對象實(shí)例,處理錯誤。(8)關(guān)閉

20、各種類,將資源釋放給系統(tǒng)。13說明用戶接口線程和工作線程的概念和特點(diǎn)。用戶接口線程:通常用來處理用戶輸入產(chǎn)生的消息和事件,并獨(dú)立地響應(yīng)正在應(yīng)用程序其它部分執(zhí)行的線程們產(chǎn)生的消息和事件。用戶接口線程包含一個消息處理的循環(huán),以應(yīng)對各種事件。工作線程:適用于處理那些不要求用戶輸入并且比較消耗時間的其他任務(wù)。對用戶來說,工作線程運(yùn)行在后臺。這就使得工作線程特別適合去等待一個事件的發(fā)生。14簡述創(chuàng)建MFC的工作線程所必需的步驟。(1)是編程實(shí)現(xiàn)控制函數(shù)。(2)是創(chuàng)建并啟動工作線程。(3)創(chuàng)建工作線程的例子。(4)創(chuàng)建工作線程的一般模式。15如何正常終止線程?如何提前終止線程?答:正常終止線程:執(zhí)行完畢時

21、退出控制函數(shù),并返回三個用來表示終止原因的值即可。 提前終止線程:從線程內(nèi)調(diào)用AfxEndThread函數(shù),就可以強(qiáng)迫線程終止。16非阻塞套接字的五種“套接字I/O模型”:select(選擇)、WSAAsyncSelect(異步選擇)、WSAEventSelect(事件選擇)、Overlapped I/O(重疊式I/O)以及Completion port(完成端口)。17 WSAAsyncSelect異步I/O模型的編程步驟用CreateWindow函數(shù)創(chuàng)建一個窗口,并為該窗口提供一個窗口回調(diào)例程。調(diào)用WSAAsyncSelect函數(shù)創(chuàng)建套接字,指定關(guān)注的套接字、窗口句柄、打算接收的消息,以及

22、程序感興趣的套接字事件。成功執(zhí)行WSAAsyncSelec函數(shù),就打開了窗口的消息通知,并注冊了事件。WSAAsyncSelec函數(shù)執(zhí)行時,當(dāng)注冊的套接字事件之一發(fā)生時,指定的窗口會收到指定的消息,并自動執(zhí)行該窗口的回調(diào)例程,可在其中添加自己的代碼,處理相應(yīng)的事件。18 WSAEventSelect事件選擇模型的編程步驟創(chuàng)建事件對象句柄事件選擇模型要求應(yīng)用程序針對每一個套接字,首先創(chuàng)建一個事件對象。創(chuàng)建方法是調(diào)用WSACreateEvent函數(shù),定義如下:WSAEVENT WSACreateEvent(void);關(guān)聯(lián)套接字和事件對象,注冊關(guān)心的網(wǎng)絡(luò)事件將事件對象句柄與某個套接字關(guān)聯(lián)在一起,同

23、時注冊感興趣的網(wǎng)絡(luò)事件類型。調(diào)用WSAEventSelect函數(shù),函數(shù)的定義為:int WSAEventSelect(SOCKET s,WSAEVENT hEventObject,long lNetworkEvents); 等待網(wǎng)絡(luò)事件觸發(fā)事件對象句柄的工作狀態(tài)調(diào)用WSAWaitForMultipleEvents函數(shù),等待網(wǎng)絡(luò)事件觸發(fā)事件對象句柄的工作狀態(tài)。該函數(shù)的定義:DWORD WSAWaitForMultipleEvents(DWORD cEvents,const WSAEVENT FAR * lphEvents,BOOL fWaitAll,DWORD dwTimeout,BOOL fA

24、lertable); 檢查套接字上所發(fā)生的網(wǎng)絡(luò)事件類型調(diào)用WSAEnumNetworkEvents函數(shù),檢查套接字上發(fā)生了什么類型的網(wǎng)絡(luò)事件。該函數(shù)定義如下:int WSAEnumNetworkEvents(SOCKET s,WSAEVENT hEventObject,LPWSANETWORKEVENTS lpNetworkEvents); 處理網(wǎng)絡(luò)事件在確定了套接字上發(fā)生的網(wǎng)絡(luò)事件類型后,可以根據(jù)不同的情況做出相應(yīng)的處理。完成了對WSANETWORKEVENTS結(jié)構(gòu)中的事件的處理之后,應(yīng)用程序應(yīng)在所有可用的套接字上,繼續(xù)等待更多的網(wǎng)絡(luò)事件。應(yīng)用程序完成了對一個事件對象的處理后,便應(yīng)調(diào)用WSA

25、CloseEvent函數(shù),釋放由事件句柄使用的系統(tǒng)資源。函數(shù)的定義如下:BOOL WSACloseEvent(WSAEVENT hEvent);該函數(shù)也將一個事件句柄作為自己唯一的參數(shù),并會在成功后返回TRUE,失敗后返回FALSE。15什么是HTTP會話?HTTP會話周期由哪些階段組成?HTTP是超文本傳輸協(xié)議(Hypertext Transfer Protocol)的簡稱,HTTP協(xié)議也是基于TCP/IP的客戶/服務(wù)器協(xié)議。主要是用于傳輸文件的協(xié)議。HTTP會話周期由連接、請求、響應(yīng)和斷開4個階段組成。建立TCP/IP連接Web客戶機(jī)向服務(wù)器發(fā)送HTTP請求服務(wù)器向客戶機(jī)回送HTTP響應(yīng)斷

26、開TCP/IP連接16簡述電子郵件系統(tǒng)的構(gòu)成。答:一個電子郵件系統(tǒng)包括三個主要的構(gòu)件,即用戶代理,郵件消息傳輸代理,和電子郵件使用的協(xié)議。1. 多線程的使用。CTestDlg:OnOk( )int i=2; /定義一個整型數(shù),賦值為2(2分)AfxBeginThread(MyThreadFunc,&i); /開啟線程,線程控制函數(shù)為MyThreadFuncUINT MyThreadFunc (LPVOID lpParam) int* i = (int*) lpParam; /取出參數(shù)(2分)switch (*i) case 2: AfxMessageBox(“測試成功”); /當(dāng)接收到的數(shù)為2

27、時,彈出信息提示框,信息提示框顯示“測試成功”(3分)break;default:break;return 0;2. select模型的使用。 基于UDP協(xié)議的接收端程序中的recvfrom( )函數(shù)工作在非阻塞模式,使用select選擇模型對recvfrom( )函數(shù)的調(diào)用進(jìn)行控制。部分代碼已給出,按要求填空。void main(void) SOCKET s=socket(AF_INET,SOCK_DGRAM,0); fd_set Readset; /定義一個套接字集合變量(2分) FD_ZERO(&Readset); /清除套接字集合變量(2分) FD_SET(s,&Readset); /

28、將套接字s加入到套接字集合中(3分)int Readynum=0;Readynum=select(0,&Readset,NULL,NULL,NULL);if (Readynum0) if( FD_ISSET(s,&Readset) )/判斷套接字s是否還在套接字集合中(3分) recvfrom(s,buf,256,0,(sockaddr*)&from,&fromlength); 1. 設(shè)計(jì)一個文件拷貝的程序(基于對話框的工程),實(shí)現(xiàn)本地文件的移動。自行設(shè)計(jì)界面,包括填寫源文件路徑和目標(biāo)文件路徑,拷貝按鈕。(4分,如果只有文字描述,沒有繪制圖形,給3分)寫出對話框界面上控件對應(yīng)的變量。(變量名可

29、以自擬)(2分)為IDC_EDIT_SOURCE_PATH添加VALUE類型的CString變量m_strSource(1分,變量名自擬)為IDC_EDIT_TARGET_PATH添加VALUE類型的CString變量m_strTar(1分,變量名自擬)寫出拷貝按鈕的處理函數(shù)。(4分)UpdateData(TRUE); (2分)CopyFile(m_strSourc,m_strTar,FALSE); (2分)3. 編寫點(diǎn)對點(diǎn)通信的接收端程序,使用UDP協(xié)議。要求如下:遵循無連接的套接字編程流程;端口取值7000;輸出接收到的信息。#include#include#pragma comment(lib,ws2_32.lib)/以上三句可以不寫void main(void)sockaddr_in from,bind;/變量名可自定義WSADATA wsdata;WSAStartup(MAKEWORD(2,0),&wsdata);(1分)SOCKET s=socket(AF_INET,SOCK_DGRAM,0);(1分)bind.sin_family=AF_INET;(1分) bind.sin_addr.s_addr=inet_addr(6);(1分)/地址可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論