以MFC为框架实现C/S通信的Socket编程

2018-12-22 07:05周亚文河南大学
数码世界 2018年8期
关键词:客户机服务器端控件

周亚文 河南大学

1 绪论

1.1 课题背景

就TCP/IP协议来讲,它是一个开放的网络协议体系,在利用TCP/IP 协议的网络操作系统中,不同的应用程序可以通过网络编程接口套接字( Socket)与其下层核心协议通信。而大部分Windows应用程序框架来源于MFC,定义了应用程序的结构,实现了应用程序的公共部分,封装了大部分的Windws API 函数,降低了编程难度,大大地提高了应用程序的开发速度和质量。本文讨论的客户端服务器通信的设计与实现方法很好地诠释了Socket通信的原理。

2 关键技术

2.1 MFC

MFC是一个编程框架。

MFC应用程序框架,简称MFC框架,是由MFC(Microsoft Foundation Class Library)中的各种类结合起来构成的。MFC框架从总体上定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员只须通过预定义的接口把具体应用程序特有的东西填入这个轮廓,就能建立Windows下的应用程序。MFC 中所有的类都来源于一个基类:CObject。

2.2 WINDOWS SOCKETS网络编程接口

选定WINDOWS平台开发网络通信程序,可以选择WINDOWS的SOCKETS编 程 接 口,Windows Sockets是 一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。

2.3 Client/Server结构(客户机/服务器模式)

C/S结构软件分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。

C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。

3 系统设计与功能实现

3.1 系统设计

3.1.1 服务器端应用程序的创建:

(1)使用MFC AppWizard创建服务器端应用程序框架。

创建一个工程名为Server,选择 Dialog based 的应用程序类型,选择中文(中国),选择Windows Sockets支持,其他接受系统默认值。所创建的程序将自动创建两个类,应用程序类ServerApp,对应的文件是Server.cpp 和 Server.h;对话框类 ServerDlg,对应的文件是ServerDlg.cpp 和 ServerDlg.h。

(2)为对话框界面添加控件对象

在创建了应用程序框架之后,可以布置程序的主对话框。在Visual Studio 的“SolutionExplorer(解决方案资源管理器)”(可通过 View-SolutionExplorer 调出)中选择“ResourceFiles”并通过单击展开,双击后缀为.rc 的文件,在出现的界面中展开 Dialog,双击其中的 IDD_DIALOG,便会出现图形界面的可视化设计窗口以及图形界面控件面板,利用控件面板可以方便地在程序的主对话框界面中添加相应的可视控件对象。添加相应的控件对象。

(3)为对话框中的控件对象定义相应的成员变量

在窗口菜单中选择“Project(项目)”/“Class Wizard(类向导)”命令,进入“MFC ClassWizard”(类向导)对话框,将Class name通过下拉列表勾选为ServerDlg,然后选择“Member Variables”(成员变量)选项卡,用类向导为对话框中的控件对象定义相应的成员变量。在左边的列表框中选择一个控件,然后单击“Add Variable”(添加变量)按钮,会弹出“Add Member Variable”(添加成员变量)对话框,根据需要进行定义。

3.2 功能实现

打开服务器, 输入端口号(1000),点击“OPEN”按钮开启服务器。这时服务器对话框中显示“服务已经开启!”;接着打开客户端,输入IP(192.168.43.204)和相应的端口号(1000),该端口号必须和服务器端口号一致,否则无法连接服务器,在客户端对话框中输入所要发送的消息,最后点击“send”按钮,在服务器对话框中就可以看到客户端发送的文本消息。

猜你喜欢
客户机服务器端控件
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
Linux环境下基于Socket的数据传输软件设计
关于.net控件数组的探讨
隔山亦能打牛,本本巧变远控利器
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
升腾瘦客户机借神码翱翔“云端”
基于Web数据提高访问速度的方法