首页 理论教育C/S网络版信息管理软件开发,客户端数据处理

C/S网络版信息管理软件开发,客户端数据处理

【摘要】:创建工程名为“s”和“c”的两个对话框程序,演示C/S结构的网络版信息管理软件开发过程。客户端通过TCP对服务器上的数据进行增、删、改、查等功能。4)在应答类中添加虚函数OnClose,在客户端连接断开后及时清理堆空间。6)在CClientSocket类中,添加两个私有函数AddData和Browse作为协议处理函数。图15-22 添加控件型关联变量13)在主对话框类的头文件中,添加一个CSocket类型的成员变量,以及通信数据和协议定义。

任何通信协议的格式都是由命令号和附带数据两部分组成,包括网络通信协议和硬件通信协议。命令号也叫协议号或协议编号,就是用一个数字或字符串通知对方执行一个对应的命令。大部分协议在发送命令号后还要发送附带数据,例如,登录协议要附带账号和密码等数据。

创建工程名为“s”和“c”的两个对话框程序,演示C/S结构的网络版信息管理软件开发过程。客户端通过TCP对服务器上的数据进行增、删、改、查等功能。在应用程序向导的第2页,选中“Windows Sockets”复选框。如果没有选择该选项,那么可以在stdafx.h中包含“afxsock.h”头文件,并在App类的InitInstance函数中调用AfxSocketInit函数。

1)在服务器“s”工程的CSApp类头文件中,添加一个用于数据管理的链表变量

978-7-111-46378-8-Chapter15-47.jpg

978-7-111-46378-8-Chapter15-48.jpg

2)在“s”工程中创建两个CSocket类的派生类CListenSocket和CClientSocket,如图15-20所示。

978-7-111-46378-8-Chapter15-49.jpg

图15-20 创建后的CSocket派生类

3)在侦听类(CListenSocket)中添加虚函数OnAccept,用于截获客户端的连接。

978-7-111-46378-8-Chapter15-50.jpg

4)在应答类(CClientSocket)中添加虚函数OnClose,在客户端连接断开后及时清理堆空间。

978-7-111-46378-8-Chapter15-51.jpg

5)在应答类(CClientSocket)中添加虚函数OnReceive,用于接收和解析客户端协议。

978-7-111-46378-8-Chapter15-52.jpg

978-7-111-46378-8-Chapter15-53.jpg

6)在CClientSocket类中,添加两个私有函数AddData和Browse作为协议处理函数。

978-7-111-46378-8-Chapter15-54.jpg

7)在主对话框类的头文件中,添加一个CListenSocket类型的成员变量。

978-7-111-46378-8-Chapter15-55.jpg

8)修改主对话框初始化函数的代码。

978-7-111-46378-8-Chapter15-56.jpg

978-7-111-46378-8-Chapter15-57.jpg

9)编译并运行,测试服务器端代码。

服务器端代码就完成了,接下来编写客户端代码。(www.chuimin.cn)

10)在客户端“c”工程的主对话框中增加一些控件,如图15-21所示。

978-7-111-46378-8-Chapter15-58.jpg

图15-21 编辑主对话框资源

11)修改控件属性,见表15-5。

表15-5 主对话框的控件属性

978-7-111-46378-8-Chapter15-59.jpg

12)通过类向导为列表控件建立控件型关联变量,如图15-22所示。

978-7-111-46378-8-Chapter15-60.jpg

图15-22 添加控件型关联变量

13)在主对话框类的头文件中,添加一个CSocket类型的成员变量,以及通信数据和协议定义。

978-7-111-46378-8-Chapter15-61.jpg

14)修改主对话框初始化函数的代码。

978-7-111-46378-8-Chapter15-62.jpg

15)在主对话框类中添加一个私有成员函数OnRefresh,用于从服务器接收数据来刷新列表。

978-7-111-46378-8-Chapter15-63.jpg

978-7-111-46378-8-Chapter15-64.jpg

16)建立“添加”按钮的消息映射函数OnAdd。

978-7-111-46378-8-Chapter15-65.jpg

17)编译并运行,测试服务器端和客户端代码,如图15-23所示。

首先开启服务器程序,再在一台或多台计算机开启多个客户端程序进行测试。所有客户端添加的数据都统一保存在服务器上,并且在各个客户端中都能正常显示。

978-7-111-46378-8-Chapter15-66.jpg

图15-23 查看运行结果