版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1. TCP/UDP在傳輸層;IP在網(wǎng)絡層;MAC在數(shù)據(jù)鏈路層2. NAT的實現(xiàn)方式有三種,即靜態(tài)轉(zhuǎn)換、動態(tài)轉(zhuǎn)換和端口多路復用3. 端口號是16位的,范圍在0655354. 在套接字通信中,常用套接字類型包括三類:流式套接字、數(shù)據(jù)報套接字和原始套接字 流式套接字(其類型字段的值是SOCK_STREAM): 提供面向連接的、可靠的字節(jié)流服務,應用程序所訪問的傳輸層協(xié)議是TCP協(xié)議。 數(shù)據(jù)報式套接字(其類型字段的值是SOCK_DGRAM): 提供無連接的,不可靠的數(shù)據(jù)報服務,應用程序所訪問的傳輸層協(xié)議是UDP協(xié)議。 原始套接字(其類型字段的值是SOCK_RAW): 允許應用程序直接對較低層的協(xié)議,
2、如IP、ICMP進行訪問。5. 有狀態(tài)服務器定義:保存狀態(tài)信息的服務器優(yōu)勢:減少客戶和服務器交換報文的大小;允許服務器快速相應請求 無狀態(tài)服務器定義:不保存任何狀態(tài)信息的服務器優(yōu)勢:提高協(xié)議的可靠性6. 并發(fā)服務器定義:在一個時刻只處理一個請求的服務器 循環(huán)服務器定義:在一個時刻可以處理多個請求的服務器7. 面向應用的網(wǎng)絡編程方法(1) WinInet編程(2) 基于WWW應用的網(wǎng)絡編程(3) 面向SOA的Web Service8. 面向原始幀的網(wǎng)絡編程方法(1) 直接網(wǎng)卡編程技術(2) 基于Packet Driver的網(wǎng)絡編程方法(3) 基于NDIS的網(wǎng)絡編程(4) WinPcap編程9.
3、UDP是無連接的;TCP是面向連接的意義:決定了客戶和服務器交互所采用的算法;決定了下層系統(tǒng)所提供的可靠性等級;面向連接的服務器優(yōu)點:易于編程缺點:資源消耗問題無連接的服務器優(yōu)點:無資源消耗問題缺點:編程復雜10. bind和listen函數(shù)是非阻塞的11. B/S模型B/S(Browse/Server)模型也叫B/S模式,它是一種基于Web的通信模型,使用HTTP通信。B/S是一種特殊的C/S模型,特殊之處就在于這種模型的客戶端一般是某種流行的瀏覽器,例如,微軟的Internet Explorer。優(yōu)點:單臺計算機可以訪問任何一個Web服務器,不需要針對不同的服務器分別提供專用的客戶端軟件。
4、12. 客戶/服務器模型 優(yōu)點:(1)結(jié)構(gòu)簡單 (2)支持分布式、并發(fā)環(huán)境 (3)服務器集中管理資源,有利于權限控制和系統(tǒng)安全 (4)可擴展性好 缺點:(1)缺乏有效的安全性 (2)客戶負荷過重 (3)服務器工作效率低 (4)容易造成網(wǎng)絡阻塞13. 瀏覽器/服務器模型 優(yōu)點:(1)具有分布性特點,可以隨時隨地進行查詢、瀏覽等業(yè)務處理 (2)業(yè)務擴展簡單方便,通過增加網(wǎng)頁即可增加服務器功能 (3)維護簡單方便 (4)開發(fā)簡單,共享性強 缺點:(1)操作時以鼠標為最基本的操作方式,無法滿足快速操作的要求 (2)頁面動態(tài)刷新,響應速度明顯降低 (3)功能弱化,難以實現(xiàn)傳統(tǒng)模式下的特殊功能要求14.
5、字節(jié)順序:大端順序和小端順序15. Linux中提供的基本I/O功能16. 會聚點問題的解決方案1)要求下層通信協(xié)議在請求報文到達后自動創(chuàng)建運行程序底層通訊程序太復雜!2)要求在任何一對進行通信的應用進程中,有一方必須在啟動執(zhí)行后(無限期)等待對方與其聯(lián)系??蛻舴掌髂P偷慕鉀Q方案17.客戶端通信過程:socket初始化;創(chuàng)建套接字,指定使用TCP(可靠的傳輸服務)進行通信;指定服務器地址和通信端口;向服務器發(fā)送連接請求;進行數(shù)據(jù)傳輸;關閉套接字;結(jié)束對windows sockets dll的使用。18.服務器通信過程:socket初始化;創(chuàng)建套接字,指定使用TCP(可靠的傳輸服務)進行通信;
6、指定本地地址和通信端口;等待客戶端的連接請求;進行數(shù)據(jù)傳輸;關閉套接字;結(jié)束對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; /存儲單次recv操作的返回值 int cnt; /用于統(tǒng)計相對于固定長度,剩余多少字節(jié)尚未接收 cnt = fixedlen; while ( cnt > 0 ) iResult = recv(
8、s, recvbuf, cnt, 0); if ( iResult < 0 ) /數(shù)據(jù)接收出現(xiàn)錯誤,返回失敗 printf("接收發(fā)生錯誤: %dn", WSAGetLastError(); return -1; if ( iResult = 0 ) /對方關閉連接,返回已接收到的小于fixedlen的字節(jié)數(shù) printf("連接關閉n"); return fixedlen - cnt; /printf("接收到的字節(jié)數(shù): %dn", iResult); /接收緩存指針向后移動 recvbuf +=iResult; /更新cnt
9、值 cnt -=iResult; return fixedlen;21. 接收變長數(shù)據(jù)int recvvl(SOCKET s, char * recvbuf, unsigned int recvbuflen) int iResult;/存儲單次recv操作的返回值 unsigned int reclen; /用于存儲報文頭部存儲的長度信息 /獲取接收報文長度信息 iResult = recvn(s, ( char * )&reclen, sizeof( unsigned int );if ( iResult !=sizeof ( unsigned int ) /如果長度字段在接收時沒有
10、返回一個整型數(shù)據(jù)就返回(連接關閉)或-1(發(fā)生錯誤) if ( iResult = -1 ) printf("接收發(fā)生錯誤: %dn", WSAGetLastError(); return -1; else printf("連接關閉n"); return 0; /轉(zhuǎn)換網(wǎng)絡字節(jié)順序到主機字節(jié)順序reclen = ntohl( reclen );if ( reclen > recvbuflen ) /如果recvbuf沒有足夠的空間存儲變長消息,則接收該消息并丟棄,返回錯誤 while ( reclen > 0) iResult = recvn(
11、 s, recvbuf, recvbuflen ); if ( iResult != recvbuflen ) /如果變長消息在接收時沒有返回足夠的數(shù)據(jù)就返回(連接關閉)或-1(發(fā)生錯誤) if ( iResult = -1 ) printf("收發(fā)生錯誤:%dn", WSAGetLastError(); return -1; else printf("連接關閉n"); return 0; reclen -= recvbuflen; /處理最后一段數(shù)據(jù)長度 if ( reclen < recvbuflen ) recvbuflen = reclen
12、; printf("可變長度的消息超出預分配的接收緩存rn"); return -1; /接收可變長消息 iResult = recvn( s, recvbuf, reclen ); if ( iResult != reclen ) /如果消息在接收時沒有返回足夠的數(shù)據(jù)就返回(連接關閉)或-1(發(fā)生錯誤) if ( iResult = -1 ) printf("接收發(fā)生錯誤: %dn", WSAGetLastError(); return -1; else printf("連接關閉n"); return 0; return iResu
13、lt;簡答題2、闡述程序、套接字、端口和協(xié)議之間的關系程序和套接字的關系:一個程序可以同時使用多個套接字,不同套接字完成不同的傳輸任務。多個應用程序可以同時使用同一個套接字,不過這種情況并不常見。套接字和端口的關系:每個套接字都有一個關聯(lián)的本地TCP或UDP端口,它用于把傳入的分組指引到應該接收它們的應用程序。一個端口上可能關聯(lián)多個套接字,流式套接字的服務器上可能同時有監(jiān)聽套接字和連接套接字,它們都與一個TCP的端口號相關聯(lián);一個套接字一般只會關聯(lián)一個唯一的本地端口號。端口和協(xié)議的關系:TCP和UDP的端口號是獨立使用的。3、在基于流式套接字的網(wǎng)絡應用程序設計中,假設客戶端以8字節(jié)-12字節(jié)-
14、8字節(jié)-12字 節(jié)的順序交替發(fā)送數(shù)據(jù)給服務器,請思考,服務器的接收操作每次能夠接收到多少字節(jié)的數(shù)據(jù)?為什么?服務器接收操作每次能夠接收到的數(shù)據(jù)長度是不確定的,這是因為TCP傳送數(shù)據(jù)的形態(tài)是沒有間隔的字節(jié)流,數(shù)據(jù)接收僅與接收調(diào)用的時間和當前主機內(nèi)核緩存中尚未提交應用程序的數(shù)據(jù)有關,與發(fā)送端發(fā)送多少次和TCP如何傳送沒有直接的關系,我們不能準確地預測一個特定的接收操作到底返回多少字節(jié)。4.在服務器和客戶的通信過程中,服務器是如何處理多個客戶服務請求的呢?1)如果是循環(huán)服務器,則服務器在與一個客戶建立連接后,其他客戶只能等待;當一個客戶服務完之后,服務器才會接收另一個客戶的服務請求;即循環(huán)服務器的通信流程中,藍色的3個步驟是循環(huán)進行的;2)如果是并發(fā)服務器,則當服務器與一個客戶進行通信的過程中,可以同時接收其他客戶的服務請求,并且服務器要為每一個客戶創(chuàng)建一個從進程,在從進程中用新創(chuàng)建的套接字與客戶交互;即并發(fā)服務器的通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年林業(yè)科技創(chuàng)新項目樹苗采購合同3篇
- 2025年個人房產(chǎn)買賣合同標準文本下載7篇
- 二零二五年度智慧城市建設名義合伙人合同4篇
- 2025年度旅游度假村經(jīng)營管理合同范本4篇
- 2025年度跨境投資委托理財合同范文集錄3篇
- 2025年度智能家居個人精裝修房屋租賃合同(長期居住舒適保障)4篇
- 2025年度定制門窗安裝與品牌授權合作協(xié)議4篇
- 二零二五版美發(fā)店合伙人經(jīng)營目標與業(yè)績考核合同4篇
- 2024年中級經(jīng)濟師考試題庫及完整答案(典優(yōu))
- 建筑材料采購合作協(xié)議書(2篇)
- 春節(jié)文化常識單選題100道及答案
- 12123交管學法減分考試題及答案
- 2024年杭州師范大學附屬醫(yī)院招聘高層次緊缺專業(yè)人才筆試真題
- 制造業(yè)BCM業(yè)務連續(xù)性管理培訓
- 商場停車場管理制度
- 2025年寒假實踐特色作業(yè)設計模板
- 2024年全國職業(yè)院校技能大賽高職組(體育活動設計與實施賽項)考試題庫(含答案)
- 24年追覓在線測評28題及答案
- TGDNAS 043-2024 成人靜脈中等長度導管置管技術
- 《陸上風電場工程概算定額》NBT 31010-2019
- QJ903.9A-1995航天產(chǎn)品工藝文件管理制度管理用工藝文件編制規(guī)則
評論
0/150
提交評論