版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、網(wǎng)絡(luò)協(xié)議編程課程設(shè)計網(wǎng)絡(luò)協(xié)議編程課程設(shè)計網(wǎng)絡(luò)協(xié)議編程課程設(shè)計HUNAN CITY UNIVERSITY 網(wǎng)絡(luò)協(xié)議編程課程設(shè)計 說明書 設(shè)計題目:基于MFC框架的Echo協(xié)議模擬軟件的設(shè)計與實現(xiàn) 專 業(yè): 網(wǎng)絡(luò)工程 學(xué)生姓名: * 班級學(xué)號: 1206101-28 分組成員: 1206101-05 *、1206101-31* 1206101-28何* 指導(dǎo)教師: *老師 *老師 2015 年 07月 03日網(wǎng)絡(luò)協(xié)議編程課程設(shè)計說明書學(xué)號:1206101-28 姓名:*一、設(shè)計時間2015年06月29日-07月03日。二、設(shè)計地點(diǎn)湖南城市學(xué)院信息樓507機(jī)房。三、設(shè)計目的1、鞏固網(wǎng)絡(luò)協(xié)議編程課程涉
2、及的基本知識,培養(yǎng)靈活運(yùn)用知識進(jìn)行獨(dú)立設(shè)計的能力;2、掌握TCP/IP網(wǎng)絡(luò)程序框架、Winsock API、高級網(wǎng)絡(luò)編程API的使用;3、提高綜合運(yùn)用所學(xué)的理論知識獨(dú)立分析和解決問題的能力;4、進(jìn)一步熟悉利用Visual C+6.0進(jìn)行開發(fā)的能力;5、培養(yǎng)查閱資料,獨(dú)立思考問題的能力。四、設(shè)計小組成員1206101-05* 1206101-31* 1206101-28*五、指導(dǎo)老師*老師、*老師。六、設(shè)計課題經(jīng)過小組組員的討論,決定選取選題(18 基于MFC框架的Echo協(xié)議模擬軟件的設(shè)計與實現(xiàn)),編寫一個基于MFC框架的Echo協(xié)議模擬軟件。理由:1、Echo協(xié)議(也稱回聲協(xié)議)是一個非常簡
3、單的協(xié)議,它主要用于網(wǎng)絡(luò)可達(dá)性的檢測中。2、該系統(tǒng)功能相對簡單,易于實現(xiàn),適于初學(xué)者。3、該系統(tǒng)牽涉到TCP協(xié)議、CAsysncSocket類、C/S模式以及MFC框架,采用VC6.0編制程序模擬Echo協(xié)議的基本功能,需要靈活運(yùn)用這些知識解決實際問題,有利于培養(yǎng)網(wǎng)絡(luò)系統(tǒng)開發(fā)的實際動手能力。七、基本思路及關(guān)鍵問題的解決方法本系統(tǒng)的開發(fā)采用基于MFC的Echo協(xié)議的C/S模式,服務(wù)器在端口7檢測接收到的信息,如果收到信息,則原封不動地重發(fā)回客戶端。根據(jù)C/S模式的特點(diǎn),使用TCP協(xié)議、CAsysncSocket類、C/S模式以及MFC框架,采用VC6.0編制程序模擬Echo協(xié)議的基本功能。設(shè)計為
4、了方便,利用VC+自動生成的對話框來進(jìn)行刪除和修改,并且利用圖形用戶界面來添加相應(yīng)的相應(yīng)按鈕。算法及流程圖 開始初始化加載CAsyncSocket類偵聽偵聽失敗建立連接NY調(diào)用Accept()函數(shù)調(diào)用CAsyncSelect()函數(shù)將數(shù)據(jù)返回給客戶端關(guān)閉套接字結(jié)束服務(wù)器流程圖開始初始化加載CAsyncSocket類結(jié)束連接失敗接收數(shù)據(jù)建立連接N響應(yīng)函數(shù)OnTimer()客戶端流程圖Y關(guān)閉程序運(yùn)行:服務(wù)器初始界面:客戶端初始界面:服務(wù)器開始偵聽,客戶端點(diǎn)擊連接:彈出如下對話框,輸入相應(yīng)信息: 客戶端點(diǎn)擊確定后服務(wù)器彈出如下提示框: 在信息輸入框輸入信息:點(diǎn)擊發(fā)送:發(fā)送成功并接收到了從服務(wù)器端返回
5、的一樣的信息。調(diào)試過程中出現(xiàn)的問題及相應(yīng)解決辦法1.調(diào)試過程中出現(xiàn)問題,一一對應(yīng)檢查,在經(jīng)過對書上代碼的對比后改正,最終成功編譯并運(yùn)行。2.在連接時使用了不相同的端口號,導(dǎo)致建立不了連接,檢查之后發(fā)現(xiàn)并改正過來。3在畫流程圖時,由于對代碼的不熟悉,導(dǎo)致問題多多,經(jīng)慢慢了解,初步得以解決。十一、課程設(shè)計心得體會通過這次課程設(shè)計,讓我更加深刻的了解了TCP這門課程編程方面的知識,和以往對知識的疏忽也得以補(bǔ)充,在設(shè)計過程中,我和小組另一位成員一起負(fù)責(zé)畫流程圖和基本思路方面,雖然遇到了一些問題,但經(jīng)過我們幾個同學(xué)的一次又一次的思考,一遍又一遍的檢查終于找出了原因并及時改正,雖然我們在這方面的知識有所欠
6、缺和不足,但是我覺得我收獲了很多、學(xué)會了很多、也比以往更有耐心很多。十二、源程序服務(wù)器:/偵聽void CCSockServerDlg:OnListen() if(m_srvrSocket.m_hSocket=INVALID_SOCKET) BOOL bFlag=m_srvrSocket.Create(7,SOCK_STREAM,FD_ACCEPT); if(!bFlag) AfxMessageBox(Socket Error!); m_srvrSocket.Close(); PostQuitMessage(0); return; /偵聽成功,等待連接請求if(!m_srvrSocket.Li
7、sten(1) int nErrorCode=m_srvrSocket.GetLastError(); if(nErrorCode!=WSAEWOULDBLOCK) AfxMessageBox(Socket Error!); m_srvrSocket.Close(); PostQuitMessage(0); return; 客戶端:/連接void CCSockClientDlg:OnConnect() m_clientSocket.ShutDown(2); m_clientSocket.m_hSocket=INVALID_SOCKET; m_clientSocket.m_bConnected=
8、FALSE;CAddrDlg m_Dlg;/默認(rèn)端口7m_Dlg.m_Port =7;if(m_Dlg.DoModal()=IDOK & !m_Dlg.m_Addr.IsEmpty() memset(m_szServerAdr,0,sizeof(m_szServerAdr);/汪彥老師添加 /memcpy(m_szServerAdr,m_Dlg.m_Addr,sizeof(m_Dlg.m_Addr); memcpy(m_szServerAdr,m_Dlg.m_Addr,strlen(m_Dlg.m_Addr)+1); m_szPort=m_Dlg.m_Port; /建立計時器,每1s嘗試連接一
9、次,直到連上或TryCout10 SetTimer(1,1000,NULL); TryCount=0;/發(fā)送void CCSockClientDlg:OnSend() / TODO: Add your control notification handler code hereif(m_clientSocket.m_bConnected) m_clientSocket.m_nLength=m_MSG.GetWindowText(m_clientSocket.m_szBuffer,sizeof(m_clientSocket.m_szBuffer); m_clientSocket.AsyncSel
10、ect(FD_WRITE); m_MSG.SetWindowText();/退出void CCSockClientDlg:OnExit() / TODO: Add your control notification handler code here/關(guān)閉socketm_clientSocket.ShutDown(2);/關(guān)閉對話框EndDialog(0);/WINDOWS消息響應(yīng)函數(shù)void CCSockClientDlg:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call default
11、if(m_clientSocket.m_hSocket=INVALID_SOCKET) BOOL bFlag=m_clientSocket.Create(0,SOCK_STREAM,FD_CONNECT); if(!bFlag) AfxMessageBox(Socket Error!); m_clientSocket.Close(); PostQuitMessage(0); return; /AfxMessageBox(m_szServerAdr);m_clientSocket.Connect(m_szServerAdr,m_szPort); / 汪彥老師修改 /m_clientSocket.Connect(127.0.0.1,7);TryCount+;if(TryCount=10 | m_clientSocket.m_bConnected) KillTimer(1); if(TryCount=10) AfxMessageBox(Connect Failed!);return; CDialog:OnTimer(nIDEvent);參考文獻(xiàn)1任泰明.TCP/IP網(wǎng)絡(luò)編程M.北京:人民郵電出版社,200
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- VRAR視頻體驗研究-深度研究
- 2025至2031年中國金剛石外圓車床刀行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國發(fā)酵罐錐底組合件行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國濾布式真空過濾機(jī)數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國工業(yè)型異味控制器數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國臥式鏈條爐數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國全頻天花喇叭數(shù)據(jù)監(jiān)測研究報告
- 2025年中國芝麻粕市場調(diào)查研究報告
- 2025年中國法國香水皂市場調(diào)查研究報告
- 二零二五年度2025年度鏟車承包與項目管理合作協(xié)議2篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 安徽省合肥市2025年高三第一次教學(xué)質(zhì)量檢測地理試題(含答案)
- 計劃合同部部長述職報告范文
- 風(fēng)光儲儲能項目PCS艙、電池艙吊裝方案
- 人教版高一地理必修一期末試卷
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專題培訓(xùn)課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購?fù)稑?biāo)方案(技術(shù)方案)
- 基于學(xué)習(xí)任務(wù)群的小學(xué)語文單元整體教學(xué)設(shè)計策略的探究
- 高中英語原版小說整書閱讀指導(dǎo)《奇跡男孩》(wonder)-Part one 講義
- GB/T 9755-2001合成樹脂乳液外墻涂料
評論
0/150
提交評論