影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

網(wǎng)路編程技術(shù)課程設(shè)計局域網(wǎng)文件傳輸系統(tǒng)

上傳人:仙*** 文檔編號:28045916 上傳時間:2021-08-23 格式:DOC 頁數(shù):15 大?。?99KB
收藏 版權(quán)申訴 舉報 下載
網(wǎng)路編程技術(shù)課程設(shè)計局域網(wǎng)文件傳輸系統(tǒng)_第1頁
第1頁 / 共15頁
網(wǎng)路編程技術(shù)課程設(shè)計局域網(wǎng)文件傳輸系統(tǒng)_第2頁
第2頁 / 共15頁
網(wǎng)路編程技術(shù)課程設(shè)計局域網(wǎng)文件傳輸系統(tǒng)_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《網(wǎng)路編程技術(shù)課程設(shè)計局域網(wǎng)文件傳輸系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《網(wǎng)路編程技術(shù)課程設(shè)計局域網(wǎng)文件傳輸系統(tǒng)(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 河北科技大學 課程設(shè)計報告 學生姓名: 學 號: 專業(yè)班級: 網(wǎng)絡(luò) 081 課程名稱: 網(wǎng)絡(luò)編程技術(shù) 學年學期: 2 010—2 011 學年 第 2 學期 指導教師: 2 0 11年 6月 - 1 - 課程設(shè)計成績評定表 學生姓名 學 號 成績 專業(yè)班級 網(wǎng)絡(luò)081 起止時間 20

2、11.6.6-2011.6.12 設(shè)計題目 局域網(wǎng)文件傳輸系統(tǒng) 指 導 教 師 評 語 指導教師: 年 月 日 目 錄 1.設(shè)計題目 1 2.設(shè)計目的 1 3.設(shè)計要求 1 4.程序設(shè)計過程 1 4.1設(shè)計分析 1 4.2程序流程圖 2 5.程序源代碼 2 5.1 獲取在線用戶名及IP 2 5.2發(fā)送文

3、件及接收文件 4 5.3刷新列表 6 5.4輸及退出 6 6.運行調(diào)試 7 6.1文件傳輸運行主界面窗口 7 6.2發(fā)送文件及接收文件界面 8 6.3中止文件傳輸界面 10 6.4刷新列表界面 11 7.總結(jié) 11 7.1主要問題 11 7.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)局

4、域網(wǎng)內(nèi)多臺計算機間的文件傳送,達到共享的目的; 2. 程序能夠動態(tài)的監(jiān)聽在線用戶,并自動獲得機器名及相應(yīng)IP; 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 程序

5、流程圖 5.程序源代碼 5.1 獲取在線用戶名及IP void CFiletransDlg::BroadCastSend() { //發(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 phost[200]; char temp[400]; memset(phost,

6、0,200); memset(temp,0,400); if( 0==gethostname(phost,200)) ; else strcpy(phost,"Yang"); strcpy(temp,"\t\t\t\t");//指定報頭為請求返回在線確認消息。 strcat(temp,phost); //向本子網(wǎng)內(nèi)請求返回在線確認消息。 int err=sendto(m_sockSend,temp,strlen(temp)+1,0,(sockaddr*)&addrTo,sizeof(sockaddr)); if(SOCKET_ERROR

7、==err) { //MessageBox("廣播發(fā)送數(shù)據(jù)失敗。"); return; } err=sendto(m_sockSend,temp,strlen(temp)+1,0,(sockaddr*)&addrTo,sizeof(sockaddr)); if(SOCKET_ERROR==err) { //MessageBox("廣播發(fā)送數(shù)據(jù)失敗。"); return; } } 5.2發(fā)送文件及接收文件 //發(fā)送文件 void CFiletransDlg::OnSendFile() { // TODO: Add your contro

8、l notification handler code here CString ip; if(!GetIPAddr(ip)) { return ; } int modal,nCount; //modal表示返回對話框的結(jié)果 CString fileName; //文件的名字 CFileDialog fdlg(true); //打開文件對話框 modal=fdlg.DoModal(); if(IDCANCEL==modal) { return; //用戶取消發(fā)送。 } SENDFILEPARAM* p=new SENDFILEPARAM;

9、fileName=fdlg.GetFileName(); p->pathName=fdlg.GetPathName(); nCount=fileName.GetLength(); memset(p->fileName,0,NAMELENGTH); for(int i=0;ifileName[i]=fileName.GetAt(i); } p->pCLAN=this; p->ip=ip; ::AfxBeginThread(SendFileSingle,(LPVOID)p); return;} //收文件 UINT Sa

10、veFileSingle(LPVOID param) { SAVEFILEPARAM sp; sp.pCLAN=((SAVEFILEPARAM*)param)->pCLAN; sp.sock=((SAVEFILEPARAM*)param)->sock; CSocket sock; sock.Attach(sp.sock); DWORD Length; char fileName[NAMELENGTH]; CString savePathName; int modal,err; memset(fileName,0,NAMELENGTH); err=

11、sock.Receive(&Length,sizeof(DWORD));//接收文件長度 if(0==err) { AfxMessageBox("連接被關(guān)閉了。"); sock.Close(); //重置事件對象為有信號狀態(tài),準備下次接收 。 if(!SetEvent(g_hEventRecv)) {return 0;} if(0==finish) { CString strFinis; if(step

12、ox(strFinis);} else{CString strFinish; strFinish.Format("已成功接收文件\r\n\r\n%s",fileName); AfxMessageBox(strFinish);} } else { if(!m_stop) { m_stop=true; CString strFinis; strFinis.Format("接受方停止接受\r\n\r\n%s",fileName); AfxMessageBox(strFinis);} } return 0;} 5.3刷新列表 void

13、 CFiletransDlg::OnFlushList() { int nListItemCount=this->m_IPlist.GetItemCount(); for(int i=0;im_IPlist.DeleteItem(i);} BroadCastSend(); } 5.4輸及退出 //中止文件傳輸 void CFiletransDlg::OnStoptrans() { if(MessageBox(_T("真的要停止文件傳輸嗎?"), _T("警告"), MB_ICONEXCLAMATION|M

14、B_YESNO) == IDYES) {m_stop = false; return ;} } //退出 void CFiletransDlg::OnClose() { BroadCastExit(); //通知其他主機我下線了。 if(INVALID_SOCKET!=m_sockRecv) closesocket(m_sockRecv); if(INVALID_SOCKET!=m_sockSend) closesocket(m_sockSend); ResetEvent(g_hEventRecv); ResetEvent(g_hEvent

15、Send); DeleteCriticalSection(&g_criticalSend); DeleteCriticalSection(&g_criticalRecv); CDialog::OnCancel(); CDialog::OnClose(); } 6.運行調(diào)試 6.1文件傳輸運行主界面窗口 圖2 文件傳輸主界面 6.2發(fā)送文件及接收文件界面 圖 3 發(fā)送文件界面 圖 4 接收文件窗口 圖 5 文件傳輸過程顯示 圖 6 接收文件成功界面 6.3中止文件傳輸界面 圖 7 文件中止傳輸確定

16、 圖8中止傳輸后返回錯誤界面 6.4刷新列表界面 圖 9 刷新界面對比 7.總結(jié) 7.1主要問題 1. 如何設(shè)計選擇多個用戶接收同一個文件; 2. 如何一次選擇傳輸多個文件; 3. 怎樣可以傳輸整個未打包文件夾 7.2收獲心得 在一起討論著完成這個過程中,雖然自己不是知道很多,雖然自己沒能夠編寫多少代碼,不過在這個過程中確實學到了很多。在要添加進度條去顯示傳輸百分多少功能時,通過上網(wǎng)查,看書,也找到了相應(yīng)的函數(shù)并添加成功了。更換了原來就有的圖標,雖然簡單,卻也知道了方法。也知道了要用全廣播進行局域網(wǎng)廣播以獲取在線主機名及主機IP。自己動手確實能夠?qū)W到很多東西,而且會學的很快。 - 12 -

展開閱讀全文
溫馨提示:
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)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!