版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《網(wǎng)絡(luò)程序設(shè)計(jì)》復(fù)習(xí)題21、什么叫套接字?套接字按通信性質(zhì)可以分為哪兩類?多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過同一個(gè)TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為套接字(Socket)的接口。套接字按通信性質(zhì)分:會(huì)話套接字和數(shù)據(jù)報(bào)套接字。2、理解線程的創(chuàng)建與使用方法,并能應(yīng)用到程序設(shè)計(jì)中。P663、異構(gòu)環(huán)境下的網(wǎng)絡(luò)程序設(shè)計(jì)需要考慮哪些問題?1)字節(jié)順序:不同的平臺(tái)以不同的方式存放一個(gè)二進(jìn)制數(shù)。最常見的有兩種格式:大數(shù)在前的字節(jié)順序和小數(shù)在前的字節(jié)順序。大數(shù)在前的字節(jié)順序是指將一個(gè)多字節(jié)數(shù)的高序字節(jié)存儲(chǔ)在內(nèi)存的起始地址;而小數(shù)在前的字節(jié)順序則相反,將低序字節(jié)存儲(chǔ)在內(nèi)存的起始地址。2)字的長度:不同的實(shí)現(xiàn)對(duì)于相同的數(shù)據(jù)類型可能有不同的表示長度。3)字節(jié)定界問題:不同的平臺(tái)上為結(jié)構(gòu)體(struct)或共同體(union)打包的方式也是不同的,這取決于所有數(shù)據(jù)類型的位數(shù)及機(jī)器的定界限制。4、為什么在數(shù)據(jù)結(jié)構(gòu)structsockaddr_in中,成員變量sin_addr和sin_port需要轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)順序,而sin_family不需要呢?Sin_addr和sin_port分別封裝在包的IP和UDP層,必須要是網(wǎng)絡(luò)字節(jié)順序。Sin_family域只是被內(nèi)核使用來決定在數(shù)據(jù)結(jié)構(gòu)中包含什么類型的地址,沒有發(fā)送到網(wǎng)絡(luò)上,所以它必須是本機(jī)字節(jié)順序5、從網(wǎng)絡(luò)編程的角度來簡述和比較IP地址和端口的作用。端口:是一種抽象的軟件結(jié)構(gòu)。應(yīng)用程序通過系統(tǒng)調(diào)用與某端口建立連接(binding)后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)進(jìn)程所接受,相應(yīng)進(jìn)程發(fā)給傳輸層的數(shù)據(jù)都通過該端口輸出。在TCP/IP協(xié)議的實(shí)現(xiàn)中,端口操作類似一般的I/O操作,進(jìn)程獲取一個(gè)端口,相當(dāng)于獲取本地唯一的I/O文件。地址:網(wǎng)絡(luò)通信中通信的兩個(gè)進(jìn)程在不同的機(jī)器上。這兩個(gè)機(jī)器可能位于不同的網(wǎng)絡(luò),這些網(wǎng)絡(luò)通過網(wǎng)絡(luò)互聯(lián)設(shè)備連接。因此需要三級(jí)尋址:某一主機(jī)與多個(gè)網(wǎng)絡(luò)相連,必須指定一特定網(wǎng)絡(luò)地址;網(wǎng)絡(luò)上每一主機(jī)應(yīng)有唯一的地址;每一主機(jī)上的每一進(jìn)程有在主機(jī)上的唯一標(biāo)識(shí)符。6、為什么網(wǎng)絡(luò)編程時(shí)需要考慮字節(jié)順序問題?7、WinSock編程中需要哪些文件?8、UDP程序的工作模型隱含著通信標(biāo)識(shí)五元組的建立過程。這五元組在UDP的客戶與服務(wù)端是由哪些函數(shù)分別確定的?9、什么是阻塞與非阻塞通信?請(qǐng)解釋兩者的區(qū)別。通信包括阻塞和非阻塞兩種模式。阻塞調(diào)用是指調(diào)用結(jié)果返回之前,當(dāng)前線程會(huì)被掛起。函數(shù)只有在得到結(jié)果之后才會(huì)返回。非阻塞和阻塞的概念相對(duì)應(yīng),指在不能立刻得到結(jié)果之前,該函數(shù)不會(huì)阻塞當(dāng)前線程,而會(huì)立刻返回。區(qū)別:對(duì)于不同的協(xié)議,阻塞通信和非阻塞通信有不同的表現(xiàn)。以插口為例,在阻塞模式下,利用TCP協(xié)議發(fā)送一個(gè)報(bào)文時(shí),如果低層協(xié)議沒有可用空間來存放用戶數(shù)據(jù),則應(yīng)用進(jìn)程將阻塞等待直到協(xié)議有可用的空間。而在非阻塞模式下,調(diào)用將直接返回而不需等待。在應(yīng)用進(jìn)程調(diào)用接收函數(shù)接收?qǐng)?bào)文時(shí),如果是在阻塞模式下,若沒有到達(dá)的數(shù)據(jù),則調(diào)用將一直阻塞直到有數(shù)據(jù)到達(dá)或出錯(cuò);而在非阻塞模式下,將直接返回而不需等待。對(duì)于UDP協(xié)議而言,由于UDP沒有發(fā)送緩存,因此所有UDP協(xié)議即使在阻塞模式下也不會(huì)發(fā)生阻塞。對(duì)于面向連接的協(xié)議,在連接建立階段,阻塞與非阻塞也表現(xiàn)不一。在阻塞模式下,如果沒有連接請(qǐng)求到達(dá),則等待連接調(diào)用將阻塞直到有連接請(qǐng)求到達(dá);但在非阻塞模式下,如果沒有連接請(qǐng)求到達(dá),等待連接調(diào)用將直接返回。10、簡述各種類型數(shù)據(jù)的發(fā)送與接收處理的方法。11、簡述基于UDP的客戶機(jī)/服務(wù)器端socket編程流程。12、什么是通信三元組和五元組?三元組和五元組每個(gè)元素在網(wǎng)絡(luò)連接中起到什么作用?三元組:(協(xié)議,本地地址,本地端口號(hào));(在網(wǎng)絡(luò)中用一個(gè)三元組可以在全局唯一標(biāo)志一個(gè)進(jìn)程:(協(xié)議,本地地址,本地端口號(hào))這樣一個(gè)三元組,叫做一個(gè)半相關(guān)(half-association),它指定連接的每半部分。)五元組:(協(xié)議,本地地址,本地端口號(hào),遠(yuǎn)地地址,遠(yuǎn)地端口號(hào))(即兩個(gè)協(xié)議相同的半相關(guān)才能組合成一個(gè)合適的相關(guān),或完全指定組成一連接。)13、為什么服務(wù)端在TCP通信過程中需要調(diào)用bind()函數(shù)而客戶端不需要?為什么客戶機(jī)通常不需要綁定自己的端口號(hào)?14、簡述套接字Select模型原理,以及select模型的優(yōu)勢和不足。15、簡述阻塞模式服務(wù)器和客戶端工作流程,以及阻塞模式套接字的優(yōu)勢和不足。16、在實(shí)際應(yīng)用中,很多TCP服務(wù)器程序在非正常退出時(shí),如果立即重啟服務(wù)器進(jìn)程則會(huì)發(fā)生綁定服務(wù)器端口失敗的錯(cuò)誤,從而無法啟動(dòng)服務(wù)器進(jìn)程,但等待一段時(shí)間后就可以了。為什么會(huì)發(fā)生這種情況呢?如何解決這個(gè)問題(或采取什么措施可以立即重啟服務(wù)器進(jìn)程)?(要求掌握setsockopt()函數(shù)的用法)17、TCP程序的工作模型隱含著通信標(biāo)識(shí)五元組的建立過程。這五元組在TCP的客戶與服務(wù)端是由哪些函數(shù)分別確定的?18、accept()為什么要返回一個(gè)套接口?或者說,為什么要為每一個(gè)連接創(chuàng)建一個(gè)套接口來處理?UDP服務(wù)器端為什么不需要多個(gè)套接口?19、理解生產(chǎn)者-消費(fèi)者模型,理解線程的同步與互斥方法(event和critical-section),并能應(yīng)用到程序設(shè)計(jì)中。20、采用阻塞式I/O模型時(shí),套接字函數(shù)recv()的返回值有哪幾種?分別對(duì)應(yīng)什么情況?21、closesocket()函數(shù)和shutdown()函數(shù)有何差別?shutdown()與closesocket()的區(qū)別shutdown()與closesocket()的區(qū)別。1)如果關(guān)閉讀,則接受緩沖區(qū)的未讀出的所有數(shù)據(jù)都將丟失,以后不會(huì)再接受任何數(shù)據(jù)2)如果關(guān)閉寫,如果輸出緩沖區(qū)內(nèi)有數(shù)據(jù),則所有的數(shù)據(jù)將發(fā)送出去后將發(fā)送一個(gè)FIN信號(hào)而close則是關(guān)閉該socket,馬上發(fā)送FIN信號(hào),所有的未完成發(fā)送或者接受的數(shù)據(jù)都將被丟失對(duì)于慢速網(wǎng)絡(luò),應(yīng)該先進(jìn)行shutdown,然后一定的時(shí)間延遲,再close該socket.22、什么是TCP的三次握手機(jī)制?為什么要使用TCP的三次握手機(jī)制?含義:所謂的“三次握手”即對(duì)每次發(fā)送的數(shù)據(jù)量是怎樣跟蹤進(jìn)行協(xié)商使數(shù)據(jù)段的發(fā)送和接收同步,根據(jù)所接收到的數(shù)據(jù)量而確定的數(shù)據(jù)確認(rèn)數(shù)及數(shù)據(jù)發(fā)送、接收完畢后何時(shí)撤消聯(lián)系,并建立虛連接。為了提供可靠的傳送,TCP在發(fā)送新的數(shù)據(jù)之前,以特定的順序?qū)?shù)據(jù)包的序號(hào),并需要這些包傳送給目標(biāo)機(jī)之后的確認(rèn)消息。TCP總是用來發(fā)送大批量的數(shù)據(jù)。當(dāng)應(yīng)用程序在收到數(shù)據(jù)后要做出確認(rèn)時(shí)也要用到TCP。原因:在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。三次握手時(shí)在存在包丟失、重復(fù)和延遲的情況下,確保通信雙方信息交換確定性的充分必要條件。1.請(qǐng)求端(通常稱為客戶)發(fā)送一個(gè)SYN段,指明客戶打算連接的服務(wù)器的端口以及初始序號(hào)(SEQ)。這個(gè)SYN段為報(bào)文段1。2.服務(wù)器發(fā)回包含服務(wù)器的初始序號(hào)的SYN報(bào)文段(報(bào)文段2)作為應(yīng)答。同時(shí),將確認(rèn)序號(hào)設(shè)置為客戶的ISN加1,用以對(duì)客戶的SYN報(bào)文段進(jìn)行確認(rèn)。一個(gè)SYN占用一個(gè)序號(hào)。3.客戶必須將確認(rèn)序號(hào)設(shè)置為服務(wù)器的ISN加1,用以對(duì)服務(wù)器的SYN報(bào)文段進(jìn)行確認(rèn)23、服務(wù)器端并發(fā)的兩種模型及編程實(shí)現(xiàn)。考試形式:閉卷考試時(shí)間:120分鐘考試題型:選擇題(2’×10=20’)、簡答題(10’×6=60’)、程序設(shè)計(jì)題(20’)函數(shù)參考:structsockaddr{unsignedshortsa_family,charsa_data[14]};structsockaddr_in{shortsin_family,unsignedshortsin_port,structin_addrsin_addr,charsin_zero[8]};u_shorthtons(u_shorthostshort);u_longhtonl(u_longhostlong);u_shortntohs(u_shorthostshort);u_longntohl(u_longhostlong);unsignedlonginet_addr(constchar*cp);char*FARinet_ntoa(structin_addrin);intWSAStartup(WORDwVersionRequested,LPWSADATAlpWSAData);#defineWINSOK_VERSIONMAKEWORD(2,2)intWSACleanup(void);intWSAGetLastError(void);SOCKETsocket(intaf,inttype,intprotocol);intclosesocket(SOCKETs);intbind(SOCKETs;conststructsockaddr*name,intnamelen);intrecvfrom(SOCKETs,char*buf,intlen,intflags,structsockaddr*from,int*fromlen);intsendto(SOCKETs,constchar*buf,intlen,intflags,conststructsockaddr*to,inttolen);intlisten(SOCKETs,intbacklog);SOCKETaccept(SOCKETs,structsockaddr*addr,int*addrlen);intconnect(SOCKETs,conststructsockaddr*name,intnamelen);intsend(SOCKETs,constchar*buf,intlen,intflags);intrecv(SOCKETs,char*buf,intlen,intflags);intshutdown(SOCKETs,inthow);intsetsockopt(SOCKETs,intlevel,intoptname,constcharFAR*optval,intoptlen);intselect(intntfs,fd_set*readthis,fd_set*writefds,fd_set*excepitids,conststructtimeval*timeout);FD_ZERO(*set);FD_SET(s,*set);FD_CLR(s,*set);FD_ISSET(s,*set);unsignedlong_beginthread(void(__cdecl*start_address)(void*),unsignedstack_size,void*arglist);HANDLECreateEvent(LPSECURITY_ATTRIBUTESlpEventAttributes,BOOLbManualReset,BOOLbInitialState,LPCTSTRlpName);BOOLSetEvent(HANDLEhEvent);DWORDWaitForSingleObject(HANDLEhHandle,DWORDdwMilliseconds);BOOLCloseHandle(HANDLEhObject);voidInitializ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年09月北京2024年國家開發(fā)銀行北京分行校園招考筆試歷年參考題庫附帶答案詳解
- 浙江省臺(tái)州市仙居縣重點(diǎn)名校2025屆中考生物五模試卷含解析
- 2024年09月全國2024年平安銀行總行及事業(yè)部專場秋季校園招考筆試歷年參考題庫附帶答案詳解
- 2024年09月2024華夏銀行南京分行校園招聘筆試歷年參考題庫附帶答案詳解
- 2024年08月蘇州市農(nóng)發(fā)融資租賃有限公司招考1名融資租賃業(yè)務(wù)經(jīng)理筆試歷年參考題庫附帶答案詳解
- 2024年08月內(nèi)蒙古鄂托克前旗農(nóng)村商業(yè)銀行股份有限公司社會(huì)招考5名人員筆試歷年參考題庫附帶答案詳解
- 2024年08月中國銀行股份有限公司擬接收境內(nèi)院校應(yīng)屆畢業(yè)生情況(第九批)筆試歷年參考題庫附帶答案詳解
- 光伏工程技術(shù)基礎(chǔ)知識(shí)單選題100道及答案
- 2024年08月湖南中國郵政儲(chǔ)蓄銀行湖南分行社會(huì)招考筆試歷年參考題庫附帶答案詳解
- 2024年08月江西贛州銀行新余分行社會(huì)招考筆試歷年參考題庫附帶答案詳解
- 《新中國獨(dú)立自主的外交》 教學(xué)課件
- 簡支箱梁橋畢業(yè)設(shè)計(jì)
- 監(jiān)理安全安全通知書(春節(jié)假期)
- 啟明星辰天鏡網(wǎng)站安全監(jiān)測系統(tǒng)用戶手冊(cè)
- 2022年湖南省長沙市中考數(shù)學(xué)試題及答案解析
- FZ∕T 63006-2019 松緊帶
- 迅達(dá)電梯5400超詳細(xì)故障代碼中文版
- 招投標(biāo)法考試試題及答案
- 皮帶輸送機(jī)工程施工電氣安裝措施要點(diǎn)
- 愛人情況登記表
- 水蓄冷與冰蓄冷地比較
評(píng)論
0/150
提交評(píng)論