收藏 分销(赏)

网络协议编程课程设计.doc

上传人:精**** 文档编号:3991420 上传时间:2024-07-24 格式:DOC 页数:8 大小:36.54KB 下载积分:6 金币
下载 相关 举报
网络协议编程课程设计.doc_第1页
第1页 / 共8页
网络协议编程课程设计.doc_第2页
第2页 / 共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.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服