




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1. TCP/UDP在傳輸層;IP在網(wǎng)絡(luò)層;MAC在數(shù)據(jù)鏈路層2. NAT的實(shí)現(xiàn)方式有三種,即靜態(tài)轉(zhuǎn)換、動(dòng)態(tài)轉(zhuǎn)換和端口多路復(fù)用3. 端口號(hào)是16位的,范圍在0655354. 在套接字通信中,常用套接字類型包括三類:流式套接字、數(shù)據(jù)報(bào)套接字和原始套接字 流式套接字(其類型字段的值是SOCK_STREAM): 提供面向連接的、可靠的字節(jié)流服務(wù),應(yīng)用程序所訪問的傳輸層協(xié)議是TCP協(xié)議。 數(shù)據(jù)報(bào)式套接字(其類型字段的值是SOCK_DGRAM): 提供無連接的,不可靠的數(shù)據(jù)報(bào)服務(wù),應(yīng)用程序所訪問的傳輸層協(xié)議是UDP協(xié)議。 原始套接字(其類型字段的值是SOCK_RAW): 允許應(yīng)用程序直接對(duì)較低層的協(xié)議,
2、如IP、ICMP進(jìn)行訪問。5. 有狀態(tài)服務(wù)器定義:保存狀態(tài)信息的服務(wù)器優(yōu)勢(shì):減少客戶和服務(wù)器交換報(bào)文的大小;允許服務(wù)器快速相應(yīng)請(qǐng)求 無狀態(tài)服務(wù)器定義:不保存任何狀態(tài)信息的服務(wù)器優(yōu)勢(shì):提高協(xié)議的可靠性6. 并發(fā)服務(wù)器定義:在一個(gè)時(shí)刻只處理一個(gè)請(qǐng)求的服務(wù)器 循環(huán)服務(wù)器定義:在一個(gè)時(shí)刻可以處理多個(gè)請(qǐng)求的服務(wù)器7. 面向應(yīng)用的網(wǎng)絡(luò)編程方法(1) WinInet編程(2) 基于WWW應(yīng)用的網(wǎng)絡(luò)編程(3) 面向SOA的Web Service8. 面向原始幀的網(wǎng)絡(luò)編程方法(1) 直接網(wǎng)卡編程技術(shù)(2) 基于Packet Driver的網(wǎng)絡(luò)編程方法(3) 基于NDIS的網(wǎng)絡(luò)編程(4) WinPcap編程9.
3、UDP是無連接的;TCP是面向連接的意義:決定了客戶和服務(wù)器交互所采用的算法;決定了下層系統(tǒng)所提供的可靠性等級(jí);面向連接的服務(wù)器優(yōu)點(diǎn):易于編程缺點(diǎn):資源消耗問題無連接的服務(wù)器優(yōu)點(diǎn):無資源消耗問題缺點(diǎn):編程復(fù)雜10. bind和listen函數(shù)是非阻塞的11. B/S模型B/S(Browse/Server)模型也叫B/S模式,它是一種基于Web的通信模型,使用HTTP通信。B/S是一種特殊的C/S模型,特殊之處就在于這種模型的客戶端一般是某種流行的瀏覽器,例如,微軟的Internet Explorer。優(yōu)點(diǎn):單臺(tái)計(jì)算機(jī)可以訪問任何一個(gè)Web服務(wù)器,不需要針對(duì)不同的服務(wù)器分別提供專用的客戶端軟件。
4、12. 客戶/服務(wù)器模型 優(yōu)點(diǎn):(1)結(jié)構(gòu)簡單 (2)支持分布式、并發(fā)環(huán)境 (3)服務(wù)器集中管理資源,有利于權(quán)限控制和系統(tǒng)安全 (4)可擴(kuò)展性好 缺點(diǎn):(1)缺乏有效的安全性 (2)客戶負(fù)荷過重 (3)服務(wù)器工作效率低 (4)容易造成網(wǎng)絡(luò)阻塞13. 瀏覽器/服務(wù)器模型 優(yōu)點(diǎn):(1)具有分布性特點(diǎn),可以隨時(shí)隨地進(jìn)行查詢、瀏覽等業(yè)務(wù)處理 (2)業(yè)務(wù)擴(kuò)展簡單方便,通過增加網(wǎng)頁即可增加服務(wù)器功能 (3)維護(hù)簡單方便 (4)開發(fā)簡單,共享性強(qiáng) 缺點(diǎn):(1)操作時(shí)以鼠標(biāo)為最基本的操作方式,無法滿足快速操作的要求 (2)頁面動(dòng)態(tài)刷新,響應(yīng)速度明顯降低 (3)功能弱化,難以實(shí)現(xiàn)傳統(tǒng)模式下的特殊功能要求14.
5、字節(jié)順序:大端順序和小端順序15. Linux中提供的基本I/O功能16. 會(huì)聚點(diǎn)問題的解決方案1)要求下層通信協(xié)議在請(qǐng)求報(bào)文到達(dá)后自動(dòng)創(chuàng)建運(yùn)行程序底層通訊程序太復(fù)雜!2)要求在任何一對(duì)進(jìn)行通信的應(yīng)用進(jìn)程中,有一方必須在啟動(dòng)執(zhí)行后(無限期)等待對(duì)方與其聯(lián)系。客戶服務(wù)器模型的解決方案17.客戶端通信過程:socket初始化;創(chuàng)建套接字,指定使用TCP(可靠的傳輸服務(wù))進(jìn)行通信;指定服務(wù)器地址和通信端口;向服務(wù)器發(fā)送連接請(qǐng)求;進(jìn)行數(shù)據(jù)傳輸;關(guān)閉套接字;結(jié)束對(duì)windows sockets dll的使用。18.服務(wù)器通信過程:socket初始化;創(chuàng)建套接字,指定使用TCP(可靠的傳輸服務(wù))進(jìn)行通信;
6、指定本地地址和通信端口;等待客戶端的連接請(qǐng)求;進(jìn)行數(shù)據(jù)傳輸;關(guān)閉套接字;結(jié)束對(duì)windows sockets dll的使用。19.接收函數(shù)的調(diào)用結(jié)果有很多種完整接收流數(shù)據(jù)int iResult, recvbuflen;char recvbuf MSGSZ;do iResult = recv(ConnectSocket, recvbuf, recvbuflen, 0); if ( iResult > 0 ) printf("Bytes received: %dn", iResult); else if ( iResult = 0 ) printf("Conne
7、ction closedn"); else printf("recv failed with error: %dn", WSAGetLastError(); while( iResult > 0 );20.接收定長數(shù)據(jù)int recvn(SOCKET s, char * recvbuf, unsigned int fixedlen) int iResult; /存儲(chǔ)單次recv操作的返回值 int cnt; /用于統(tǒng)計(jì)相對(duì)于固定長度,剩余多少字節(jié)尚未接收 cnt = fixedlen; while ( cnt > 0 ) iResult = recv(
8、s, recvbuf, cnt, 0); if ( iResult < 0 ) /數(shù)據(jù)接收出現(xiàn)錯(cuò)誤,返回失敗 printf("接收發(fā)生錯(cuò)誤: %dn", WSAGetLastError(); return -1; if ( iResult = 0 ) /對(duì)方關(guān)閉連接,返回已接收到的小于fixedlen的字節(jié)數(shù) printf("連接關(guān)閉n"); return fixedlen - cnt; /printf("接收到的字節(jié)數(shù): %dn", iResult); /接收緩存指針向后移動(dòng) recvbuf +=iResult; /更新cnt
9、值 cnt -=iResult; return fixedlen;21. 接收變長數(shù)據(jù)int recvvl(SOCKET s, char * recvbuf, unsigned int recvbuflen) int iResult;/存儲(chǔ)單次recv操作的返回值 unsigned int reclen; /用于存儲(chǔ)報(bào)文頭部存儲(chǔ)的長度信息 /獲取接收?qǐng)?bào)文長度信息 iResult = recvn(s, ( char * )&reclen, sizeof( unsigned int );if ( iResult !=sizeof ( unsigned int ) /如果長度字段在接收時(shí)沒有
10、返回一個(gè)整型數(shù)據(jù)就返回(連接關(guān)閉)或-1(發(fā)生錯(cuò)誤) if ( iResult = -1 ) printf("接收發(fā)生錯(cuò)誤: %dn", WSAGetLastError(); return -1; else printf("連接關(guān)閉n"); return 0; /轉(zhuǎn)換網(wǎng)絡(luò)字節(jié)順序到主機(jī)字節(jié)順序reclen = ntohl( reclen );if ( reclen > recvbuflen ) /如果recvbuf沒有足夠的空間存儲(chǔ)變長消息,則接收該消息并丟棄,返回錯(cuò)誤 while ( reclen > 0) iResult = recvn(
11、 s, recvbuf, recvbuflen ); if ( iResult != recvbuflen ) /如果變長消息在接收時(shí)沒有返回足夠的數(shù)據(jù)就返回(連接關(guān)閉)或-1(發(fā)生錯(cuò)誤) if ( iResult = -1 ) printf("收發(fā)生錯(cuò)誤:%dn", WSAGetLastError(); return -1; else printf("連接關(guān)閉n"); return 0; reclen -= recvbuflen; /處理最后一段數(shù)據(jù)長度 if ( reclen < recvbuflen ) recvbuflen = reclen
12、; printf("可變長度的消息超出預(yù)分配的接收緩存rn"); return -1; /接收可變長消息 iResult = recvn( s, recvbuf, reclen ); if ( iResult != reclen ) /如果消息在接收時(shí)沒有返回足夠的數(shù)據(jù)就返回(連接關(guān)閉)或-1(發(fā)生錯(cuò)誤) if ( iResult = -1 ) printf("接收發(fā)生錯(cuò)誤: %dn", WSAGetLastError(); return -1; else printf("連接關(guān)閉n"); return 0; return iResu
13、lt;簡答題2、闡述程序、套接字、端口和協(xié)議之間的關(guān)系程序和套接字的關(guān)系:一個(gè)程序可以同時(shí)使用多個(gè)套接字,不同套接字完成不同的傳輸任務(wù)。多個(gè)應(yīng)用程序可以同時(shí)使用同一個(gè)套接字,不過這種情況并不常見。套接字和端口的關(guān)系:每個(gè)套接字都有一個(gè)關(guān)聯(lián)的本地TCP或UDP端口,它用于把傳入的分組指引到應(yīng)該接收它們的應(yīng)用程序。一個(gè)端口上可能關(guān)聯(lián)多個(gè)套接字,流式套接字的服務(wù)器上可能同時(shí)有監(jiān)聽套接字和連接套接字,它們都與一個(gè)TCP的端口號(hào)相關(guān)聯(lián);一個(gè)套接字一般只會(huì)關(guān)聯(lián)一個(gè)唯一的本地端口號(hào)。端口和協(xié)議的關(guān)系:TCP和UDP的端口號(hào)是獨(dú)立使用的。3、在基于流式套接字的網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)中,假設(shè)客戶端以8字節(jié)-12字節(jié)-
14、8字節(jié)-12字 節(jié)的順序交替發(fā)送數(shù)據(jù)給服務(wù)器,請(qǐng)思考,服務(wù)器的接收操作每次能夠接收到多少字節(jié)的數(shù)據(jù)?為什么?服務(wù)器接收操作每次能夠接收到的數(shù)據(jù)長度是不確定的,這是因?yàn)門CP傳送數(shù)據(jù)的形態(tài)是沒有間隔的字節(jié)流,數(shù)據(jù)接收僅與接收調(diào)用的時(shí)間和當(dāng)前主機(jī)內(nèi)核緩存中尚未提交應(yīng)用程序的數(shù)據(jù)有關(guān),與發(fā)送端發(fā)送多少次和TCP如何傳送沒有直接的關(guān)系,我們不能準(zhǔn)確地預(yù)測(cè)一個(gè)特定的接收操作到底返回多少字節(jié)。4.在服務(wù)器和客戶的通信過程中,服務(wù)器是如何處理多個(gè)客戶服務(wù)請(qǐng)求的呢?1)如果是循環(huán)服務(wù)器,則服務(wù)器在與一個(gè)客戶建立連接后,其他客戶只能等待;當(dāng)一個(gè)客戶服務(wù)完之后,服務(wù)器才會(huì)接收另一個(gè)客戶的服務(wù)請(qǐng)求;即循環(huán)服務(wù)器的通信流程中,藍(lán)色的3個(gè)步驟是循環(huán)進(jìn)行的;2)如果是并發(fā)服務(wù)器,則當(dāng)服務(wù)器與一個(gè)客戶進(jìn)行通信的過程中,可以同時(shí)接收其他客戶的服務(wù)請(qǐng)求,并且服務(wù)器要為每一個(gè)客戶創(chuàng)建一個(gè)從進(jìn)程,在從進(jìn)程中用新創(chuàng)建的套接字與客戶交互;即并發(fā)服務(wù)器的通
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國聚四氟乙烯(PTFE)行業(yè)供需態(tài)勢(shì)與產(chǎn)銷趨勢(shì)研究報(bào)告
- 2025至2030中國磷及其衍生物市場(chǎng)發(fā)展規(guī)模與投資策略研究報(bào)告
- 2025至2030中國男裝市場(chǎng)銷售渠道與發(fā)展策略研究報(bào)告
- 2025至2030中國電子元件電線市場(chǎng)運(yùn)營規(guī)劃與投資前景深度研究報(bào)告
- 2025至2030中國生物敷料市場(chǎng)供需狀況及發(fā)展策略研究報(bào)告
- 2025至2030中國球化劑行業(yè)發(fā)展趨勢(shì)及應(yīng)用前景研究報(bào)告
- 2025至2030中國環(huán)保膠黏劑行業(yè)發(fā)展趨勢(shì)及投資策略研究報(bào)告
- 2025至2030中國烷基多糖苷行業(yè)應(yīng)用動(dòng)態(tài)及發(fā)展趨勢(shì)研究報(bào)告
- 2025至2030中國爐灶節(jié)能器行業(yè)營銷態(tài)勢(shì)及供需形勢(shì)研究報(bào)告
- 2025至2030中國氨基酸水溶肥行業(yè)需求狀況及投資盈利趨勢(shì)報(bào)告
- GB 1499.1-2024鋼筋混凝土用鋼第1部分:熱軋光圓鋼筋
- 藥物相關(guān)血小板減少診療專家共識(shí)(2023版)
- 康養(yǎng)旅游項(xiàng)目策劃方案畢業(yè)設(shè)計(jì)(2篇)
- SMD車間ESD測(cè)試報(bào)告
- 土方及場(chǎng)地平整技術(shù)交底
- TB 10752-2018 高速鐵路橋涵工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
- 2024春期國開電大本科《當(dāng)代中國政治制度》在線形考(形考任務(wù)一至四)試題及答案
- 《水電工程水生生態(tài)調(diào)查與評(píng)價(jià)技術(shù)規(guī)范》(NB-T 10079-2018)
- 《中醫(yī)常用護(hù)理技術(shù)基礎(chǔ)》課件-一般護(hù)理-第四節(jié)飲食護(hù)理
- 數(shù)字化智慧病理科建設(shè)方案
- 佩戴腕帶品管圈課件
評(píng)論
0/150
提交評(píng)論