網(wǎng)絡(luò)協(xié)議編程課程設(shè)計參考_第1頁
網(wǎng)絡(luò)協(xié)議編程課程設(shè)計參考_第2頁
網(wǎng)絡(luò)協(xié)議編程課程設(shè)計參考_第3頁
網(wǎng)絡(luò)協(xié)議編程課程設(shè)計參考_第4頁
網(wǎng)絡(luò)協(xié)議編程課程設(shè)計參考_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論