版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、百度文庫-讓每個(gè)人平等地提升自我網(wǎng)絡(luò)編程技術(shù)大作業(yè)項(xiàng)目開發(fā)入楊騰飛開發(fā)人 班級(jí)2010-2開發(fā)人學(xué)號(hào)25開發(fā)人專 業(yè)軟件工 程項(xiàng)目名 稱MFC實(shí)現(xiàn)局域網(wǎng)內(nèi)點(diǎn)對(duì)點(diǎn)的文件傳輸成績(jī)(70%)修改履歷修改編號(hào)日期修改人版本號(hào)修改內(nèi)容1楊騰飛編寫需求分析2楊騰飛修改模塊接口設(shè)計(jì)3楊騰飛編寫自我評(píng)價(jià)TCP/IP協(xié)議的概述TCP/IP (Transmission Control Protocol/lnternet Protocol)的簡(jiǎn)寫,中文譯名為傳輸控制 協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,乂叫網(wǎng)絡(luò)通訊協(xié)議,這個(gè)協(xié)議是Internet最基本的協(xié)議、Internet國(guó) 際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),簡(jiǎn)單地說,就是由網(wǎng)絡(luò)層的IP協(xié)議
2、和傳輸層的TCP協(xié)議組成的。TCP/IP 協(xié)議使用范圍極廣,是目前異種網(wǎng)絡(luò)通信使用的唯一協(xié)議體系,適用于連接多種機(jī)型,既可 用于局域網(wǎng),乂可用于廣域網(wǎng),許多廠商的計(jì)算機(jī)操作系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)產(chǎn)品都采用或含 有TCP/IP協(xié)議。TCP/IP協(xié)議己成為目前事實(shí)上的國(guó)際標(biāo)準(zhǔn)和工業(yè)標(biāo)準(zhǔn)?;赥CP/IP協(xié)議組 的網(wǎng)絡(luò)模型分為應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層和物理層這樣五個(gè)層次。TCP/IP協(xié)議組位 于應(yīng)用程序和硬件之間,指揮數(shù)據(jù)在網(wǎng)絡(luò)各層中傳遞。其中傳輸層的協(xié)議包括傳輸控制協(xié)議 (TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP),它們都建立在IP協(xié)議的基礎(chǔ)上,其中TCP提供可靠的面向 連接服務(wù),UDP提供簡(jiǎn)單的無連接
3、服務(wù)。傳輸層提供端到端,即應(yīng)用程序之間的通信,主要 功能是數(shù)據(jù)格式化、數(shù)據(jù)確認(rèn)和丟失重傳等。TCP協(xié)議是面向連接的協(xié)議,它提供可靠的字節(jié) 流服務(wù),在進(jìn)行數(shù)據(jù)傳輸之前必須先建立連接,經(jīng)三次握手確定后才開始數(shù)據(jù)傳送。UDP進(jìn)行 數(shù)據(jù)報(bào)傳輸使用的是不可靠、無連接的協(xié)議。網(wǎng)絡(luò)層包括互連網(wǎng)協(xié)議IP,互連網(wǎng)控制報(bào)文協(xié) 議ICMP和互連網(wǎng)組管理協(xié)議IGMP。其中IP協(xié)議完成大部分的工作,負(fù)責(zé)數(shù)據(jù)傳輸和路由的 選擇等。IP報(bào)頭中的地址和網(wǎng)卡相聯(lián)系(具體還涉及地址解析和反向地址解析協(xié)議),TCP、 CDP報(bào)頭中的端口號(hào)側(cè)對(duì)應(yīng)著網(wǎng)絡(luò)主機(jī)上不同的程序。TCP/IP體系結(jié)構(gòu)如圖一所示:11nn mTCPVDP1 1
4、IF11AR?1RAKF硬件接口TCP/IP體系結(jié)構(gòu)Socket通常也稱作套接字,用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程 序通常通過"套接字向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。Socket接口是TCP/IP網(wǎng)絡(luò)的API, Socket接口定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。 盡管TCP/IP協(xié)議的名稱中只有TCP這個(gè)協(xié)議名,但是在TCP/IP的傳輸層同時(shí)存在TCP和UDP 兩個(gè)協(xié)議。TCP是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。通過TCP協(xié)議傳輸,得到的是一個(gè)順序的 無差錯(cuò)的數(shù)據(jù)流。發(fā)送方和接收方的成對(duì)的兩個(gè)socket之間必須建立連接,以便
5、在TCP協(xié)議 的基礎(chǔ)上進(jìn)行通信,當(dāng)一個(gè)socket(通常都是server socket )等待建立連接時(shí),另一個(gè)socket 可以要求進(jìn)行連接,一旦這兩個(gè)socket連接起來,它們就可以進(jìn)行雙向數(shù)據(jù)傳輸,雙方都可 以進(jìn)行發(fā)送或接收操作。1 文檔概述41.1 文檔目的和范圍41.2 術(shù)語/縮略語513參考文檔52 系統(tǒng)概述52.1 項(xiàng)目說明52.2 需求分析52.3 可行性或難點(diǎn)分析53 通信協(xié)議設(shè)計(jì)63.1 通信流程63.2 會(huì)話舉例64 系統(tǒng)設(shè)計(jì)說明94.1 模塊整體結(jié)構(gòu)圖94.2 使用說明書95 模塊詳細(xì)說明95.1 核心通信模塊96 結(jié)論136.1 自我評(píng)價(jià)或總結(jié)136.2 需要進(jìn)一步學(xué)
6、習(xí)的內(nèi)容136.3 系統(tǒng)擴(kuò)展計(jì)劃131文檔概述1.1文檔目的和范明確任務(wù)和需求,使得軟件開發(fā)人員知道軟件開發(fā)流程,軟件測(cè)試時(shí)更有條理。1 -2術(shù)語/縮略語序號(hào)術(shù)語/縮略語說明1API應(yīng)用程序編程接口2Socket網(wǎng)絡(luò)套接口3IPIP是英文Internet Protocol (網(wǎng)絡(luò)之間互聯(lián)的協(xié)議)的縮寫4Client/Seiver客戶機(jī)/服務(wù)器模式5WinsockWindows下網(wǎng)絡(luò)編程的規(guī)范1 -3參考文檔序號(hào)I文檔名作者時(shí)間版本1Windows網(wǎng)絡(luò)編程羅莉琴詹祖橋2011年4月第1版2系統(tǒng)概述2.1項(xiàng)目說明本軟件是把客戶端和服務(wù)器集為一體,通過tcp協(xié)議,實(shí)現(xiàn)可靠的文件傳輸功能。運(yùn)行環(huán)境:W
7、H172.2需求分析該程序?qū)崿F(xiàn)局域網(wǎng)內(nèi)的文件傳輸功能,包括服務(wù)器端程序和客戶端程序兩部分??蛻舳顺绦颍嚎蛇B接到服務(wù)器,并將文件發(fā)送到服務(wù)器端和接受服務(wù)器端發(fā)送來的文件。 服務(wù)器端程序:負(fù)責(zé)相應(yīng)客戶端的消息和接收客戶端發(fā)送來的文件。2.3可行性或難點(diǎn)分析本軟件的難點(diǎn)在于進(jìn)行文件傳輸時(shí)只能傳送較小的文件,對(duì)于大文件的傳輸還有部分 問題尚待解決。此外,傳輸文件時(shí)的效率較低,程序容易出現(xiàn)假死現(xiàn)象,所以考慮到如果使 用多線程應(yīng)該能提高效率,但是基于自身能力和時(shí)間問題,這部分優(yōu)化沒有做,只是完成了 基本的文件傳輸功能。3通信協(xié)議設(shè)計(jì)3.1通信流程客戶方a 服藥器方鑿噩籌蜜式套接完胸嚴(yán)與本地聽囂?跖礬曬接r
8、1rrcLosesocket ()?關(guān)用套接字皿13.2會(huì)話舉例1.選擇服務(wù)器端的話會(huì)自動(dòng)獲取本機(jī)ip,可以自定義端門號(hào)。然后點(diǎn)擊“啟動(dòng)”按鈕,可以開啟服務(wù)器監(jiān) 聽有無客戶端連接。FileTra nsfers朋務(wù)選擇服務(wù)器(S)IF地址:| 10 . 76 . 32 . 24r喜戶端C)端口號(hào):|1050啟動(dòng)gjj關(guān) 0)1文件名:已收到:0字節(jié)文件長(zhǎng)度:0學(xué)節(jié)選擇文件(F)J退出(Q) I2選擇客戶端可以自己輸入要連接的服務(wù)器的IP地址和端I I號(hào)。點(diǎn)擊“連接”按鈕,可以連接到服務(wù)器,然后“選擇文件”按鈕才可以被點(diǎn)擊。FileTra nsfers冊(cè)務(wù)選擇 r孵務(wù)器(5)広專戶端(C)店她址:
9、| 10 . 76 . 32 . 24 端口號(hào):阿斷開3)I文件名:已發(fā)送:0寧節(jié)選擇文件OF) |諄止傳輸CT)|退出(Q)|文件長(zhǎng)度:o字節(jié)3服務(wù)器和客戶端連接后的狀態(tài)如卜所示:百度文庫讓每個(gè)人平等地提升自我4選擇一個(gè)文件后點(diǎn)擊發(fā)送,文件接收成功后會(huì)出現(xiàn)提示框。FileTransfers口X匚-p般勞選擇 a朋務(wù)器& r茗戶端(c文件名:t3«t 已收到:0務(wù)FileTra nsfers確走I退出(W百度文庫-讓每個(gè)人平等地提升自我4系統(tǒng)設(shè)計(jì)說明194.2使用說明書程序使用MFC做的界面,所以操作簡(jiǎn)單,直接用鼠標(biāo)點(diǎn)擊相應(yīng)按鈕即可。5模塊詳細(xì)說明5.1核心通信模塊該函數(shù)主要
10、用于處理文件傳輸?shù)目刂葡?。發(fā)送文件函數(shù)SendFile,該函數(shù)在發(fā)送文件線程被調(diào)用,其代碼如下:void CFileTransfeisDlg:SendFile(CSocket &senSo)m_bIsTransniittmg = TRUE;打開要發(fā)送的文件CFile file;if(?(m_stiPath, CFile:modeRead | CFile:typeBinary) AfxMessageBox(_TCr 文件打開失敗”);GetDlgItem(IDC_DISCONNECT)->EiiableWmdow(TRUE); GetDlgItem(IDC_SELECT_FILE
11、)->EnableWmdow(TRUE); GetDlgItem(IDCSTOP_TRANSFERS)->EnableWmdow(FALSE);0; return;(0, m_dvFileSize);int nSize = 0, nLen = 0;DWORD dwCount = 0;char bufIBLOCKSIZE = 0;(0, CFile:begin);開始傳送文件每次讀取BLOCKSIZE人小的文件內(nèi)容nLen = (buf, BLOCKSIZE); if(nLen = 0)break;/發(fā)送文件內(nèi)容nSize = (but iiLen);dwCount += nSize
12、;(dwCount);CStimg strTiaiisfersSize;(%d 字節(jié)冷 dwCount);GetDlgItem(IDC_RECEIVE_SIZE)->SetWiiidowText(stiTiansfeisSize);用戶是否要停止發(fā)送if(m_bIsStop) m_bIsStop = FALSE; break;if(nSize SOCKET.ERROR) break;關(guān)閉文件0;關(guān)閉套接字0;if(m_dwFileSize = dwCount)AfxMessageBox(_T ("文件發(fā)送成功");elseAfxMessageBox(_T(H 文件發(fā)送
13、失敗 J);(0);GetDlgItem(IDC_DISCONNECT)->EnableWmdow(TRUE);G 筑 DlgI“m(IDC_SELECT_FILE)>EnableWindow(TRUE);G 筑 DlgI“m(IDC_STOP_TRANSFERS)>EiiableWmdow(FALSE); m_bIsTransniittmg = FALSE;文件接收函數(shù)ReceiveFile,該函數(shù)在文件接收線程中被調(diào)用,其代碼如卞:void CFileTransfeisDlg:ReceiveFile(CSocket &recSo)停止等待超時(shí)計(jì)時(shí)器KillTime
14、r(2);m.blsWait = FALSE;m_bIsTransniittmg = TRUE;(0、m_dvFileSize);GetDlgItem(IDC_DISCONNECT)->EnableWmdow(FALSE);G 筑 DlgI“m(IDC_SELECT_FILE)>EnableWindow(FALSE);GetDlgItem(IDC-STOP_TRANSFERS)->EnableWindow(TRUE);int nSize = 0;DWORD dwCount = 0; char bufIBLOCKSIZE = 0;/創(chuàng)建一個(gè)文件CFile file(m_strP
15、ath. CFile:modeCreate|CFile:modeWnte);開始接收文件每次接收BLOCKSIZE人小的文件內(nèi)容nSize = (but BLOCKSIZE);if(nSize = 0)break;將接收到的文件寫到新建的文件中去(buf, nSize);dwCount += nSize;(dwCount);CStrmg strTiaiisfersSize;C%ld 字節(jié)冷 dwCount);GetDlgItem(EDC_RECEIE_SIZE)->SetWindowText(stiTransfersSize);/用戶是否要停上接收if(m_bIsStop)m_bIsSt
16、op = FALSE; break;關(guān)閉文件0;關(guān)閉套接字0;if(m_dwFileSize = dwCount)AfxMessageBox(_T(,r 文件接收成功”);elseAfkMessageEox(_T(” 文件接收失敗 J);(0);GetDlgItem(IDC_DISCONNECT)->EnableWmdow(TRUE);G 筑 DlgIWm(IDC_SELECT_FILE)>EnableWindow(TRUE);GetDlgItem(IDC-STOP_TRANSFERS)->EnableWindow(FALSE); m_bkTransniittmg = FALSE;6結(jié)論6.1自我評(píng)價(jià)或總結(jié)這次作業(yè)讓我把Socket編程
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度瓦工裝修綠色施工認(rèn)證合同3篇
- 二零二五版?;饭愤\(yùn)輸安全監(jiān)管服務(wù)合同2篇
- 二零二五版攪拌站輪胎專用備品備件供應(yīng)合同3篇
- 二零二五版智能辦公樓深度清潔及保養(yǎng)服務(wù)合同2篇
- 二零二五版辦公室文員工作環(huán)境優(yōu)化合同3篇
- 二零二五年度高端房地產(chǎn)項(xiàng)目個(gè)人連帶責(zé)任保證擔(dān)保合同2篇
- 二零二五年度互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)設(shè)施租賃合同3篇
- 2025年度中式烹飪技藝傳承與創(chuàng)新合同協(xié)議3篇
- 屋頂防水施工合同(2篇)
- 二零二五年救生員水上安全培訓(xùn)與勞動(dòng)合同3篇
- 廣東省惠州市2024-2025學(xué)年高一上學(xué)期期末考試英語試題(含答案)
- 醫(yī)院骨科2025年帶教計(jì)劃(2篇)
- 環(huán)境保護(hù)應(yīng)急管理制度執(zhí)行細(xì)則
- 2024-2030年中國(guó)通航飛行服務(wù)站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 機(jī)械制造企業(yè)風(fēng)險(xiǎn)分級(jí)管控手冊(cè)
- 地系梁工程施工方案
- 藏文基礎(chǔ)-教你輕輕松松學(xué)藏語(西藏大學(xué))知到智慧樹章節(jié)答案
- 2024電子商務(wù)平臺(tái)用戶隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語 含答案
- 醫(yī)學(xué)教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
評(píng)論
0/150
提交評(píng)論