第17章(第1 / 4页)
推荐小说:
{
BOOLQueryData(…);//向服务器查询数据
BOOLSubscribeData(…);//向服务器订阅数据
GROUPIPQueryGroupIP(…);//向服务器查询组播地址
DWORDMulticastMessage(…);//发送组播消息
virtualvoidMessageResponse(…);//响应组播消息
消费者可以向服务器订阅数据。每个客户机可能是很多数据的生产者或消费者。同一时刻,CNC系统允许有任意多个生产者和消费者存在。CNC的“发布—订阅”功能是用TCP协议实现的。
在“组播”模式中,服务器动态地分配每个组的组播地址。客户机可以向服务器申请加入任意组,允许向任意组播放消息,服务器不保存这些组播消息。CNC的“组播”功能是用UDP协议实现的。
图5.15CNC1.0的系统结构
5.5.3.1CNC客户机的API设计
类CNCClient客户机用来实现“发布—订阅”和“组播”功能,主要接口(公有函数)如下:
…
};
一、客户程序的“发布”协议
客户机向服务器发布的每个数据报均含有数据类型、工作组名称、数据名称、生命期和数据长度的信息。报文格式如图5.16所示,数据结构见DataPublish:
structDataPublish
classCNCClient
{public:
BOOLConnect(…);//连接服务器
BOOLDisconnect();//与服务器断开连接
BOOLPublishData(…);//向服务器发布数据