33 lines
935 B
C
33 lines
935 B
C
|
//
|
||
|
// 气象信息更新服务
|
||
|
// 绑定PUB套接字至tcp://*:5556端点
|
||
|
// 发布随机气象信息
|
||
|
//
|
||
|
#include "zhelpers.h"
|
||
|
|
||
|
int main (void)
|
||
|
{
|
||
|
// 准备上下文和PUB套接字
|
||
|
void *context = zmq_init (1);
|
||
|
void *publisher = zmq_socket (context, ZMQ_PUB);
|
||
|
zmq_bind (publisher, "tcp://*:5556");
|
||
|
zmq_bind (publisher, "ipc://weather.ipc");
|
||
|
|
||
|
// 初始化随机数生成器
|
||
|
srandom ((unsigned) time (NULL));
|
||
|
while (1) {
|
||
|
// 生成数据
|
||
|
int zipcode, temperature, relhumidity;
|
||
|
zipcode = randof (100000);
|
||
|
temperature = randof (215) - 80;
|
||
|
relhumidity = randof (50) + 10;
|
||
|
|
||
|
// 向所有订阅者发送消息
|
||
|
char update [20];
|
||
|
sprintf (update, "%05d %d %d", zipcode, temperature, relhumidity);
|
||
|
s_send (publisher, update);
|
||
|
}
|
||
|
zmq_close (publisher);
|
||
|
zmq_term (context);
|
||
|
return 0;
|
||
|
}
|