预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HUNANCITYUNIVERSITY网络协议编程课程设计说明书设计题目:基于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网络程序框架、WinsockAPI、高级网络编程API的使用;3、提高综合运用所学的理论知识独立分析和解决问题的能力;4、进一步熟悉利用VisualC++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类侦听侦听失败建立连接NY调用Accept()函数调用CAsyncSelect()函数将数据返回给客户端关闭套接字结束服务器流程图开始初始化加载CAsyncSocket类结束连接失败接收数据建立连接N响应函数OnTimer()客户端流程图Y关闭程序运行:服务器初始界面:客户端初始界面:服务器开始侦听,客户端点击连接:弹出如下对话框,输入相应信息:客户端点击确定后服务器弹出如下提示框:在信息输入框输入信息:点击发送:发送成功并接收到了从服务器端返回的一样的信息。调试过程中出现的问题及相应解决办法1。调试过程中出现问题,一一对应检查,在经过对书上代码的对比后改正,最终成功编译并运行。2.在连接时使用了不相同的端口号,导致建立不了连接,检查之后发现并改正过来。3.在画流程图时,由于对代码的不熟悉,导致问题多多,经慢慢了解,初步得以解决。十一、课程设计心得体会通过这次课程设计,让我更加深刻的了解了TCP这门课程编程方面的知识,和以往对知识的疏忽也得以补充,在设计过程中,我和小组另一位成员一起负责画流程图和基本思路方面,虽然遇到了一些问题,但经过我们几个同学的一次又一次的思考,一遍又一遍的检查终于找出了原因并及时改正,虽然我们在这方面的知识有所欠缺和不足,但是我觉得我收获了很多、学会了很多、也比以往更有耐心很多.十二、源程序服务器://侦听voidCCSockServerDlg::OnListen(){if(m_srvrSocket.m_hSocket==INVALID_SOCKET){BOOLbFlag=m_srvrSocket.Create(7,SOCK_STREAM,FD_ACCEPT);if(!bFlag){AfxMessageBox("SocketError!");m_srvrSocket.Close();PostQuitMessage(0);return;}}//"侦听"成功,等待连接请求if(!m_srvrSocket。Listen(1)){intnErrorCode=m_srvrSocket.GetLastError();if(nErrorCode!=WSAEWOULDBLOCK){AfxMessageBox(”SocketError!”);m_srvrSocket.Close();PostQuitMessage(0);return;}}客户端://连接voidCCSockClientDlg::OnConnect(){m_clien