58 lines
1.2 KiB
C
58 lines
1.2 KiB
C
|
#include "zhelpers.h"
|
||
|
|
||
|
struct Msg
|
||
|
{
|
||
|
int stat;
|
||
|
char id[100];
|
||
|
};
|
||
|
|
||
|
int main (int argc, char *argv [])
|
||
|
{
|
||
|
const char* param = NULL;
|
||
|
if (argc > 1)
|
||
|
{
|
||
|
param = argv[1];
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
printf("connect where: ip/port!\n");
|
||
|
}
|
||
|
char addr[40];
|
||
|
sprintf(addr, "tcp://%s", param);
|
||
|
|
||
|
// 准备上下文和PUB套接字
|
||
|
void *context = zmq_init (1);
|
||
|
void *publisher = zmq_socket (context, ZMQ_PUB);
|
||
|
zmq_bind (publisher, addr);
|
||
|
//zmq_bind (publisher, "ipc://weather.ipc");
|
||
|
|
||
|
// 初始化随机数生成器
|
||
|
srandom ((unsigned) time (NULL));
|
||
|
while (1) {
|
||
|
// 生成数据
|
||
|
int protocol_serial;
|
||
|
protocol_serial = randof (1);
|
||
|
|
||
|
char buf [200];
|
||
|
size_t buf_len = 0;
|
||
|
|
||
|
memset(buf, 0, sizeof(buf));
|
||
|
printf("buf: %d %s\n", strlen(buf), buf);
|
||
|
|
||
|
struct Msg msg;
|
||
|
msg.stat = 0;
|
||
|
const char * str = "aa";
|
||
|
memcpy(msg.id, str, strlen(str));
|
||
|
|
||
|
sprintf (buf, "%d|%d|%d|%s", protocol_serial, msg.stat, strlen(msg.id), msg.id);
|
||
|
|
||
|
printf("buf: %d %s\n", strlen(buf), buf);
|
||
|
printf("send %d %d %d %s --> %s \n", protocol_serial, msg.stat, strlen(msg.id), buf, addr);
|
||
|
s_send (publisher, buf);
|
||
|
sleep(2);
|
||
|
}
|
||
|
zmq_close (publisher);
|
||
|
zmq_term (context);
|
||
|
return 0;
|
||
|
}
|