介绍
上一篇所实现的TCP程序没有包括通信协议的内容,因此服务器和客户端只能进行简单的信息交流。当交互的要求比较多的时候(比如说客户端不只是发送文本信息,同时还要求能够对服务器数据进行增、删、改等操作),通常会定义一些通信协议。
通信协议由命令 和附加数据所组成。命令 也叫协议 ,就是用一个数字或者字符串通知对方执行一个对应的命令;附加数据包含与某个命令相关的数据。
通信协议的使用使客户端和服务器的交流更有条理性。
实例
创建一个C/S结构的 络版信息管理软件
1. 首先,定义需要的协议编 和数据信息:
将以上代码同时添加到服务器和客户端的App类的头文件中;
2. 分别开发服务器程序和客户端程序:
A.服务器程序
(1)在App头文件中添加一个变量,用于管理数据:
(2)添加两个CSocket类,用于侦听和应答:
在CListenSocket类中:
添加虚函数OnAccept用于获得客户端的连接;
在CCLientSocket类中:
添加虚函数OnClose,用于检查客户端的断开;
添加虚函数OnReceive,用于接收客户端命令并做出相应的反应:
(3)在主对话框中定义CListenSocket的成员变量,并在初始化函数中创建端口并调用侦听函数进行侦听。
B.客户端程序
运行效果:

在另外一台电脑上同时运行一个客户端程序,会看到程序一打开就会载入与此客户端相同的数据;而且当在任意客户端上添加数据时,会看到其他对话框中也添加了此条数据。
原因是:当某个对话框添加数据后,同时会向服务器发送此条消息,服务器作为中转站又向所有在线的客户端发送消息,从而使得各个客户端的数据同步。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!