网络协议编程课程设计.doc
《网络协议编程课程设计.doc》由会员分享,可在线阅读,更多相关《网络协议编程课程设计.doc(8页珍藏版)》请在咨信网上搜索。
HUNAN CITY UNIVERSITY 网络协议编程课程设计 说明书 设计题目:基于MFC框架的Echo协议模拟软件的设计与实现 专 业: 网络工程 学生姓名: ***** 班级学号: 1206101—28 分组成员: 1206101—05 *****、1206101—31****** 1206101—28何*** 指导教师: ****老师 *****老师 2015 年 07月 03日 《网络协议编程课程设计》说明书 学号:1206101-28 姓名:**** 一、设计时间 2015年06月29日——---07月03日。 二、设计地点 湖南城市学院信息楼507机房。 三、设计目的 1、巩固《网络协议编程》课程涉及的基本知识,培养灵活运用知识进行独立设计的能力; 2、掌握TCP/IP网络程序框架、Winsock API、高级网络编程API的使用; 3、提高综合运用所学的理论知识独立分析和解决问题的能力; 4、进一步熟悉利用Visual C++6.0进行开发的能力; 5、培养查阅资料,独立思考问题的能力. 四、设计小组成员 1206101—05**** 1206101—31**** 1206101-28**** 五、指导老师 ****老师、****老师。 六、设计课题 经过小组组员的讨论,决定选取选题(18 基于MFC框架的Echo协议模拟软件的设计与实现),编写一个基于MFC框架的Echo协议模拟软件。 理由: 1、Echo协议(也称回声协议)是一个非常简单的协议,它主要用于网络可达性的检测中。 2、该系统功能相对简单,易于实现,适于初学者。 3、该系统牵涉到TCP协议、CAsysncSocket类、C/S模式以及MFC框架,采用VC6。0编制程序模拟Echo协议的基本功能,需要灵活运用这些知识解决实际问题,有利于培养网络系统开发的实际动手能力. 七、基本思路及关键问题的解决方法 本系统的开发采用基于MFC的Echo协议的C/S模式,服务器在端口7检测接收到的信息,如果收到信息,则原封不动地重发回客户端。根据C/S模式的特点,使用TCP协议、CAsysncSocket类、C/S模式以及MFC框架,采用VC6。0编制程序模拟Echo协议的基本功能.设计为了方便,利用VC++自动生成的对话框来进行删除和修改,并且利用图形用户界面来添加相应的相应按钮。 八、 算法及流程图 开始 初始化 加载CAsyncSocket类 侦听 侦听失败 建立连接 N Y 调用Accept()函数 调用CAsyncSelect()函数 将数据返回给客户端 关闭套接字 结束 服务器流程图 开始 初始化 加载CAsyncSocket类 结束 连接失败 接收数据 建立连接 N 响应函数OnTimer() 客户端流程图 Y 关闭 九、 程序运行: 服务器初始界面: 客户端初始界面: 服务器开始侦听,客户端点击连接: 弹出如下对话框,输入相应信息: 客户端点击确定后服务器弹出如下提示框: 在信息输入框输入信息: 点击发送: 发送成功并接收到了从服务器端返回的一样的信息。 十、 调试过程中出现的问题及相应解决办法 1。调试过程中出现问题,一一对应检查,在经过对书上代码的对比后改正,最终成功编译并运行。 2.在连接时使用了不相同的端口号,导致建立不了连接,检查之后发现并改正过来。 3.在画流程图时,由于对代码的不熟悉,导致问题多多,经慢慢了解,初步得以解决。 十一、课程设计心得体会 通过这次课程设计,让我更加深刻的了解了TCP这门课程编程方面的知识,和以往对知识的疏忽也得以补充,在设计过程中,我和小组另一位成员一起负责画流程图和基本思路方面,虽然遇到了一些问题,但经过我们几个同学的一次又一次的思考,一遍又一遍的检查终于找出了原因并及时改正,虽然我们在这方面的知识有所欠缺和不足,但是我觉得我收获了很多、学会了很多、也比以往更有耐心很多. 十二、源程序 服务器: //侦听 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。Listen(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=FALSE; CAddrDlg m_Dlg; //默认端口7 m_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尝试连接一次,直到连上或TryCout>10 SetTimer(1,1000,NULL); TryCount=0; } } //发送 void CCSockClientDlg::OnSend() { // TODO: Add your control notification handler code here if(m_clientSocket.m_bConnected) { m_clientSocket。m_nLength=m_MSG.GetWindowText(m_clientSocket.m_szBuffer,sizeof(m_clientSocket。m_szBuffer)); m_clientSocket.AsyncSelect(FD_WRITE); m_MSG。SetWindowText(""); } } //退出 void CCSockClientDlg::OnExit() { // TODO: Add your control notification handler code here //关闭socket m_clientSocket.ShutDown(2); //关闭对话框 EndDialog(0); } //WINDOWS消息响应函数 void CCSockClientDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default 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); } 参考文献 [1]任泰明。TCP/IP网络编程[M]。北京:人民邮电出版社,2009. [2]叶树华。网络编程实用教程[M]。北京:人名邮电出版社,2010. [3]冯博琴,宋坤,刘锐宁.Visual C++大学教程[M]。北京:人民邮电大学出版社,2008. [4] 宋坤,刘锐宁.Visual C++开发典型模块大全[M]。北京:人民邮电大学出版社,2009.- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 协议 编程 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文