網(wǎng)路編程-局域網(wǎng)文件傳輸系統(tǒng)報告_第1頁
網(wǎng)路編程-局域網(wǎng)文件傳輸系統(tǒng)報告_第2頁
網(wǎng)路編程-局域網(wǎng)文件傳輸系統(tǒng)報告_第3頁
網(wǎng)路編程-局域網(wǎng)文件傳輸系統(tǒng)報告_第4頁
網(wǎng)路編程-局域網(wǎng)文件傳輸系統(tǒng)報告_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河北科技大學(xué)課程設(shè)計報告學(xué)生姓名:學(xué)號:專業(yè)班級:網(wǎng)絡(luò)081課程名稱:網(wǎng)絡(luò)編程技術(shù)學(xué)年學(xué)期:2 010 2 011學(xué)年第2學(xué)期指導(dǎo)教師:2 0 11 年6月課程設(shè)計成績評定表學(xué)生姓名學(xué)號成績專業(yè)班級網(wǎng)絡(luò)081起止時間201166-2011612設(shè)計題目局域網(wǎng)文件傳輸系統(tǒng)指 導(dǎo) 教 師 評 語指導(dǎo)教師:年 月日目錄1. 設(shè)計題目 . 12. 設(shè)計目的 . 13. 設(shè)計要求 . 14. 程序設(shè)計過程 . 14.1 設(shè)計分析 14.2 程序流程圖 25. 程序源代碼 . 25.1 獲取在線用戶名及 IP 25.2 發(fā)送文件及接收文件 45.3 刷新列表 65.4 輸及退出 66. 運行調(diào)試 . 76

2、.1 文件傳輸運行主界面窗口 76.2 發(fā)送文件及接收文件界面 86.3 中止文件傳輸界面 106.4 刷新列表界面 117. 總結(jié) . 117.1 主要問題 117.2 收獲心得 .12精品文檔1. 設(shè)計題目局域網(wǎng)文件傳輸系統(tǒng)2. 設(shè)計目的1. 基本掌握設(shè)計課題的基本步驟和方法;2. 掌握可視化開發(fā)具體的使用;3. 根據(jù)課題的要求進行上機調(diào)試;4. 掌握面相對象編程的基本思路和方法;5. 掌握 socket 的建立、監(jiān)聽、連接和數(shù)據(jù)收發(fā)編程實現(xiàn)。3. 設(shè)計要求1. 實現(xiàn)局域網(wǎng)內(nèi)多臺計算機間的文件傳送,達到共享的目的;2. 程序能夠動態(tài)的監(jiān)聽在線用戶,并自動獲得機器名及相應(yīng) IP ;3. 能夠

3、隨時終止文件的傳輸;4. 雙方可知道對方的狀態(tài), 以及文件的接受率, 傳輸率及文件大小的情況, 可隨時中止和退出接受。4. 程序設(shè)計過程4.1 設(shè)計分析本系統(tǒng)的開發(fā)采用基于 winsocket 的廣播發(fā)送模式, 在局域網(wǎng)內(nèi)進行全網(wǎng)廣 播,以得到在線用戶的主機名和相應(yīng)的IP。根據(jù)FTP協(xié)議的特點采用TCP鏈路 進行傳輸控制,UDP組播進行數(shù)據(jù)傳輸?shù)姆绞?,實現(xiàn)文件的傳輸。設(shè)計為了方便, 可以設(shè)計出FMV類圖形用戶界面,并添加相應(yīng)的相應(yīng)按鈕。4.2程序流程圖開始*在線用戶進疋1!*中止傳輸4刷新列表*發(fā)送文件4諳選一用戶*選擇文件心中止+喙二r桂輸結(jié)束4 41r糕衣pH上中止*關(guān)眇圖1程序流程圖5.

4、 程序源代碼5.1獲取在線用戶名及IPvoid CFiletra nsDlg:BroadCastSe nd()/發(fā)請求返回在線確認消息,以獲得在線用戶信息 sockaddr_in addrTo;addrTo.sin_addr.S_un.S_addr=htonl(INADDR_BROADCAST);addrTo.sin_family=AF_INET;addrTo.sin_port=htons(RECVPORT);/ 獲取主機名char phost200;char temp400;memset(phost,0,200);memset(temp,0,400);if( 0=gethostname(ph

5、ost,200)Jelsestrcpy(phost,Yang);strcpy(temp,tttt);/ 指定報頭為請求返回在線確認消息。strcat(temp,phost);/ 向本子網(wǎng)內(nèi)請求返回在線確認消息。int err=sendto(m_sockSend,temp,strlen(temp)+1,0,(sockaddr*)&addrTo,si zeof(sockaddr);if(SOCKET_ERROR=err)/MessageBox( 廣播發(fā)送數(shù)據(jù)失敗。 );return;err=sendto(m_sockSend,temp,strlen(temp)+1,0,(sockaddr*)&ad

6、drTo ,sizeof(sockaddr);if(SOCKET_ERROR=err)- 3 - 歡。迎下載精品文檔/MessageBox( 廣播發(fā)送數(shù)據(jù)失敗。 );return;5.2 發(fā)送文件及接收文件/ 發(fā)送文件void CFiletransDlg:OnSendFile() / TODO: Add your control notification handler code here CString ip;if(!GetIPAddr(ip)return ;int modal,nCount; /modal表示返回對話框的結(jié)果CString fileName; / 文件的名字 CFileDi

7、alog fdlg(true); /打開文件對話框modal=fdlg.DoModal();if(IDCANCEL=modal) return; / 用戶取消發(fā)送。 SENDFILEPARAM* p=new SENDFILEPARAM; fileName=fdlg.GetFileName(); p-pathName=fdlg.GetPathName(); nCount=fileName.GetLength();memset(p-fileName,0,NAMELENGTH);for(int i=0;ifileNamei=fileName.GetAt(i); p-pCLAN=this;p-ip=i

8、p; :AfxBeginThread(SendFileSingle,(LPVOID)p);return;/ 收文件UINT SaveFileSingle(LPVOID param) SAVEFILEPARAM sp;sp.pCLAN=(SAVEFILEPARAM*)param)-pCLAN; sp.sock=(SAVEFILEPARAM*)param)-sock;CSocket sock;sock.Attach(sp.sock);DWORD Length;char fileNameNAMELENGTH;CString savePathName;int modal,err;memset(file

9、Name,0,NAMELENGTH); err=sock.Receive(&Length,sizeof(DWORD);/ 接收文件長度 if(0=err) AfxMessageBox( 連接被關(guān)閉了。 );sock.Close();/ 重置事件對象為有信號狀態(tài),準(zhǔn)備下次接收 。if(!SetEvent(g_hEventRecv)return 0;if(0=finish) CString strFinis;if(stepm_IPlist.GetItemCount();for(int i=0;im_IPlist.DeleteItem(i);BroadCastSend();5.4 輸及退出/ 中止文

10、件傳輸void CFiletransDlg:OnStoptrans() if(MessageBox(_T( 真的要停止文件傳輸嗎? ), _T( 警告 ),MB_ICONEXCLAMATION|MB_YESNO) = IDYES)m_stop = false;return ;/ 退出void CFiletransDlg:OnClose() BroadCastExit(); / 通知其他主機我下線了。if(INVALID_SOCKET!=m_sockRecv)closesocket(m_sockRecv);- 5 - 歡。迎下載精品文檔if(INVALID_SOCKET!=m_sockSe nd

11、) closesocket(m_sockSe nd);ResetEve nt(g_hEve ntRecv);ResetEve nt(g_hEve ntSe nd);DeleteCriticalSectio n(&g_criticalSe nd);DeleteCriticalSectio n(&g_criticalRecv);CDialog:O nCan cel();CDialog:O nClose();6. 運行調(diào)試6.1文件傳輸運行主界面窗口圖2文件傳輸主界面-9-歡迎下載6.2發(fā)送文件及接收文件界面圖3發(fā)送文件界面打開當(dāng)前蕤釀用尸列表用尸名t遡學(xué)電 中止隹輸|的新列表退出 |圖4接收文件窗口圖5文件傳輸過程顯示圖6接收文件成功界面精品文檔-11。歡迎下載6.3中止文件傳輸界面圖7文件中止傳輸確定圖8中止傳輸后返回錯誤界面精品文檔6.4刷新列表界面圖9刷新界面對比7. 總結(jié)7.1主要問題1. 如何設(shè)計選擇多個用戶接收同一個文件;2. 如何一次選擇傳輸多個文件;3. 怎樣可以傳輸整個未打包文件夾7.2 收獲心得在一起討論著完成這個過程中, 雖然自己不是知道很多, 雖然自己沒能夠編 寫多少代碼, 不過在這個過程中確實學(xué)到了很多。 在要添加進度

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論