版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三篇网络安全理论与技术实验篇第九章网络通信编程实验9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程19.2CSOCKET下基于TCP协议的通信编程实验实验目的:本实验要求掌握基于TCP协议的CSocket编程的基本原理和方法,并通过自己编程实现简单的流套接字的C/S模型。网络空间安全技术实践教程29.2CSOCKET下基于TCP协议的通信编程实验实验内容:
本次实验要求在理解基于流套接字(TCP协议)的编程时序的基础上,利用VS2010及以上环境下的CSocket来实现简单的网络通信系统,即设计实现一个简单的选课信息系统,其主要功能包括:实现简单的选课信息的发送和接收功能;客户端输入姓名、学号、专业、课程代码、课程名,上课时间地点,教师等信息,并发送给服务端。服务端接收后存储显示。网络空间安全技术实践教程39.2CSOCKET下基于TCP协议的通信编程实验实验要点说明:(实验难点说明)理解TCP协议网络通信时序分别建立服务器端和客户端程序网络空间安全技术实践教程49.2CSOCKET下基于TCP协议的通信编程实验实验准备:(实验环境,实验先有知识技术说明)操作系统windowsXP及以上VS2010以上开发环境网络空间安全技术实践教程5实验步骤:1)理解流套接字编程时序流套接字的编程时序图请参看9.1节的图9-1-1。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程6实验步骤:2)服务器端程序编程步骤(1)新建服务器端工程打开一个VS2010,建立一个新的MFC工程Server。需要注意的有两点:首先,在应用类型界面需要选择基于对话框的应用,如图9-2-1所示;其次,在高级选项界面要勾选“WindowsSocket”,如图9-2-2所示,这样在之后的Socket编程工作中,用到相关头文件以及链接库等开发环境时就不再需要手工添加了。建立成功后,进入ClassView,如图9-2-3所示,可在主界面中根据功能设计好主对话框,如图9-2-4所示。需要说明的是,该程序运行后,用户就会看到界面显示的主对话框,如果关闭该对话框,程序运行进程就终止了。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程7实验步骤:2)服务器端程序编程步骤(2)创建监听和收发Socket由流套接字的时序图9-1-1中可知,服务器端程序需要监听Socket和收发信息的Socket,故我们需要申明2个Socket。因此,在ClassView中的CChenSiServer上点击右键调出菜单来(如图9-2-5),选择Add-Class...打开添加类的窗口,选择MFCClass,如图9-2-6所示。在添加类向导中进行进一步设置,Classname取名为CListenSocket,Baseclass选择CSocket,点击Finish,如图9-2-7所示。并且如法炮制,再建立一个CRWSocket,如图9-2-8所示。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程8实验步骤:2)服务器端程序编程步骤(3)实现监听和收发功能监听和收发Socket创建成功后,需要在主对话框中使用,以便服务器程序运行时,监听和收发功能可以使用。在ClassView中双击CChenSiServerDlg进入“CChenSiServerDlg.h”文件的代码编辑页后,加入两行代码:引用监听Socket类的头文件,并为主对话框申明一个成员变量m_listen,如图9-2-9所示。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程9实验步骤:2)服务器端程序编程步骤(3)实现监听和收发功能为了实现主对话框一运行,监听功能自动打开,需要在ClassView中CChenSiServerDlg下双击OnInitDialog(),进入相应编辑页,找到“//TODO:Addextrainitializationhere”,在后面加入如下代码: m_listen.Create(8888); m_listen.Listen();其中8888是监听的端口号,一般用户可以修改为2000-65535之间的数,表示服务器程序将在8888端口监听客户端的请求。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程10实验步骤:2)服务器端程序编程步骤(3)实现监听和收发功能在监听Socket与主对话框链接完成后,接下来要在监听到有客户端请求链接时,实现进行处理的函数,因此,在ClassView中找到刚才所建的新类CListenSocket,右键调出菜单点击ClassWizard...,进入向导后找到VirtualFunctions添加OnAccept(intnErrorCode)函数,如图9-2-10所示。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程11实验步骤:2)服务器端程序编程步骤(3)实现监听和收发功能双击ClassView界面中的OnAccept(intnErrorCode)进入代码编辑页面,找到“//TODO:Addyourspecializedcodehereand/orcallthebaseclass”后添加如下代码:CRWSocket*dataSocket;dataSocket=newCRWSocket;Accept(*dataSocket);需要在ListenSocket.cpp中将头文件引用,即#include"RWSocket.h"。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程12实验步骤:2)服务器端程序编程步骤(3)实现监听和收发功能监听功能完成后,要进行收发信息功能的实现,按照对CListenSocket创建新函数的方法,选择CRWSocket,右键调出菜单点击ClassWizard...,进入类向导,添加OnReceive(intnErrorCode)函数,如图9-2-11所示。双击ClassView界面中的OnReceive(intnErrorCode)进入代码编辑页面,找到“//TODO:Addyourspecializedcodehereand/orcallthebaseclass”后添加如下代码:
charstr[256]; Receive(str,256); AfxMessageBox(str);9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程13实验步骤:2)服务器端程序编程步骤(4)编译服务端程序编写完成后,需要对代码进行编译,可以通过菜单或者工具栏按钮完成操作。如果使用菜单,可以选择Build-BuildCChenSierver或者Build-BuildSolution,如图9-2-12所示。如果使用工具栏,可以选择如图9-2-13所示的按钮。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程14实验步骤:2)服务器端程序编程步骤(4)编译服务端程序如果编译完全成功,确保无语法错误时,会在Output中显示“Build:1succeed,0failed...”,如图9-2-14所示;如果编译存在错误,会显示在ErrorList中,如图9-2-15所示,编译器提示发生了很多编译错误,经查证,是因为没有在ListenSocket.cpp中引用CRWSocket所需要的头文件,即#include"RWSocket.h",增加后即可编译成功。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程15实验步骤:3)客户端程序编程步骤(1)新建客户端工程打开VS2010,建立一个新的MFC工程Client,同样应记得勾选基于对话框选项和“WindowsSocket”。建立成功后,为该对话框添加按钮、编辑控件和静态文本框控件,如图9-2-16所示。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程16实验步骤:3)客户端程序编程步骤(2)为控件添加变量右键点击对话框,弹出菜单,如图9-2-17所示。选择ClassWizard,弹出对话框,如果添加变量,先点击选择一个控件ID,然后点击右边的“AddVariable”,输入变量名,并且选择变量类型,添加好变量后如图9-2-18所示。程序代码可以通过操作变量名来操作控件,方便编程。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程17实验步骤:3)客户端程序编程步骤(3)实现发送数据功能客户端准备实现当用户点击提交时,连接服务器,将界面中输入框的内容发送到服务器端。因此双击“提交”按钮,进入该添加按钮事件的功能程序编写,代码如下:voidCCChenSiClientDlg::OnBnClickedButton1(){
//TODO:Addyourcontrolnotificationhandlercodehere UpdateData(TRUE);//更新控件值,参数为FALSE时,用控件值更新窗口显示 MessageBox(m_name);//弹出消息对话框 CSocketclientSocket; clientSocket.Create(); clientSocket.Connect("127.0.0.1",8888); clientSocket.Send(m_name,256);}9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程18实验步骤:3)客户端程序编程步骤(4)编译客户端程序编写完成后,同样需要对代码进行编译,操作方法与服务器端基本相同。把代码在编写过程中发声的各种错误改正后,即可编译成功。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程19实验步骤:4)运行服务端,客户端程序实现简易通信
编译成功后,可以通过菜单或者工具栏按钮来运行完成的程序。在编译成功的前提下,如果使用菜单,其中一种方法是选择Debug-StartDebugging,如图9-2-19所示;如果使用工具栏,可以选择如图9-2-20所示的按钮。正常运行时,会显示MFC项目中所设计的主对话框,然后依据所编写的程序进行操作,完成需要的功能。本实验中需要同时运行Server和Client两个工程中的程序,如图9-2-21所示。运行时,在客户端发送框里输入要发送的信息,点击提交即可在服务器端弹出接收到的信息。运行结果如图9-2-22所示。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程20实验步骤:4)运行服务端,客户端程序实现简易通信运行时,先在服务器端输入本机IP和将要进行通信的本机端口,点击bind绑定IP和端口;其次,在客户端输入服务器端的IP和通信端口,在发送框里输入要发送的信息,点击Send即可在服务器端的接收框中显示信息;最后,在需要结束通信的时候,发送“quitTCP”即可结束通信。运行结果如图9-1-19所示。9.2CSOCKET下基于TCP协议的通信编程实验网络空间安全技术实践教程219.2CSOCKET下基于TCP协议的通信编程实验实验结果要求
(1)建立的工程名应该是含有个人信息,如可加入姓名全拼构成唯一的工程名字,例如:CChenSiServer和CChenSiClient。(2)采用CSOCKET实现简单的客户端与服务端的数据通信过程,完成选课信息的发送和接收,选课信息包括姓名,学号,专业,课程名,教师名,上课地点等。网络空间安全技术实践教程229.2CSOCKET下基于TCP协议的通信编程实验实验报告要求
实验报告要求有封面,实验目的,实验环境,实验结果及分析;其中实验结果及分析主要描述编程步骤,关键功能及代码,编程过程中遇到的问题和经验等。网络空间安全技术实践教程239.2CSOCKET下基于TCP协议的通信编程实验实验扩展要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 事业单位计算机岗面试易错题题库试卷及参考答案 2026
- 2026事业单位综合岗面试历年真题题库及参考答案
- 事业单位法律岗面试历年真题及参考答案
- 2027年备考会计基础 【零基础学员必练】押题练习试题卷含答案
- 2026年徐州市中考地理试卷(含答案及解析)
- 2027年备考护理学(师)练习题(二)及答案
- 2026年湖南外贸职业学院高职单招笔试英语历年参考题库含答案解析
- 2026年湖南三一工业职业技术学院高职单招笔试综合素质历年参考题库含答案解析
- 2026年温州科技职业学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年浙江东方职业技术学院高职单招笔试化学历年参考题库含答案解析
- 家庭保洁作业安全方案
- 2025年人教版七年级下册历史全册知识点
- 学校后勤服务采购合同协议三篇
- DELE A1西班牙语全真模拟试题(含详细答案解析)
- 2026年新疆中考语文真题及答案解析
- IEC 62351-92023 电力系统管理和相关信息交换.数据和通信安全.第9部分电力系统设备的网络安全密钥管理标准立项发展报告
- 2026年《安全员》考试试题及答案
- 出土坡道施工方案
- 物业应急指挥体系建设手册
- 关于手术室医疗废物泄漏的应急预案演练脚本
- 仓储安全风险评估
评论
0/150
提交评论