网络协议编程课程设计参考_第1页
网络协议编程课程设计参考_第2页
网络协议编程课程设计参考_第3页
网络协议编程课程设计参考_第4页
网络协议编程课程设计参考_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网络协议编程课程设计网络协议编程课程设计网络协议编程课程设计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、及的基本知识,培养灵活运用知识进行独立设计的能力;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协议(也称回声协议)是一个非常简

3、单的协议,它主要用于网络可达性的检测中。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协议的基本功能。设计为

4、了方便,利用VC+自动生成的对话框来进行删除和修改,并且利用图形用户界面来添加相应的相应按钮。算法及流程图 开始初始化加载CAsyncSocket类侦听侦听失败建立连接NY调用Accept()函数调用CAsyncSelect()函数将数据返回给客户端关闭套接字结束服务器流程图开始初始化加载CAsyncSocket类结束连接失败接收数据建立连接N响应函数OnTimer()客户端流程图Y关闭程序运行:服务器初始界面:客户端初始界面:服务器开始侦听,客户端点击连接:弹出如下对话框,输入相应信息: 客户端点击确定后服务器弹出如下提示框: 在信息输入框输入信息:点击发送:发送成功并接收到了从服务器端返回

5、的一样的信息。调试过程中出现的问题及相应解决办法1.调试过程中出现问题,一一对应检查,在经过对书上代码的对比后改正,最终成功编译并运行。2.在连接时使用了不相同的端口号,导致建立不了连接,检查之后发现并改正过来。3在画流程图时,由于对代码的不熟悉,导致问题多多,经慢慢了解,初步得以解决。十一、课程设计心得体会通过这次课程设计,让我更加深刻的了解了TCP这门课程编程方面的知识,和以往对知识的疏忽也得以补充,在设计过程中,我和小组另一位成员一起负责画流程图和基本思路方面,虽然遇到了一些问题,但经过我们几个同学的一次又一次的思考,一遍又一遍的检查终于找出了原因并及时改正,虽然我们在这方面的知识有所欠

6、缺和不足,但是我觉得我收获了很多、学会了很多、也比以往更有耐心很多。十二、源程序服务器:/侦听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;/默认端口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;/发送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/关闭socketm_clientSocket.ShutDown(2);/关闭对话框EndDialog(0);/WINDOWS消息响应函数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);参考文献1任泰明.TCP/IP网络编程M.北京:人民邮电出版社,200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论