/*
ZeroMQ的订阅服务器
*/
#include<zmq.h>
#include<iostream>
#include<unistd.h>
using namespace std;
int main(){
void *ctx=zmq_ctx_new();
void *socket=zmq_socket(ctx,ZMQ_PUB);//建立一个发布者的socket
int rc=zmq_bind(socket,"tcp://*:5556"); //订阅端口在5556
while(true){
char buf[10];
cin>>buf;
zmq_send(socket,buf,sizeof(buf),0);
}
}
/*
ZeroMQ的订阅客户端
*/
#include<zmq.h>
#include<iostream>
#include<cstring>
using namespace std;
int main(){
void *ctx=zmq_ctx_new();
void *socket=zmq_socket(ctx,ZMQ_SUB);
int rc=zmq_connect(socket,"tcp://127.0.0.1:5556");
cout<<rc<<endl;
rc = zmq_setsockopt (socket, ZMQ_SUBSCRIBE,
"i", 1); //订阅i开头的消息,例如i12312,i哈哈哈
char buf[10];
while(true){
zmq_recv(socket,buf,sizeof(buf),0);
cout<<"from server:"<<buf<<endl;
}
}
效果图