zeromq的REP-REQ模式样例

服务端

在vs2022中创建工程Server,同时添加zeromq的头文件目录以及库目录
设置头文件目录
zeromq的REP-REQ模式样例_第1张图片

设置库文件目录以及依赖库
zeromq的REP-REQ模式样例_第2张图片
zeromq的REP-REQ模式样例_第3张图片
添加服务端代码

#include 
#include 
//#include 
#include 
#include 

int main(void)
{
    //  Socket to talk to clients
    void* context = zmq_ctx_new();
    void* responder = zmq_socket(context, ZMQ_REP);
    int rc = zmq_bind(responder, "tcp://*:5555");
    assert(rc == 0);

    while (1) {
        char buffer[10];
        zmq_recv(responder, buffer, 10, 0);
        printf("Received Hello\n");
        //sleep(1);          //  Do some 'work'
        zmq_send(responder, "World", 5, 0);
    }
    return 0;
}

客户端

在vs2022中创建工程Client,同时添加zeromq的头文件目录以及库目录
设置头文件目录
zeromq的REP-REQ模式样例_第4张图片
设置库文件目录以及依赖库
zeromq的REP-REQ模式样例_第5张图片
zeromq的REP-REQ模式样例_第6张图片
添加客户端代码

#include 
#include 
#include 
//#include 

int main(void)
{
    printf("Connecting to hello world server…\n");
    void* context = zmq_ctx_new();
    void* requester = zmq_socket(context, ZMQ_REQ);
    zmq_connect(requester, "tcp://localhost:5555");

    int request_nbr;
    for (request_nbr = 0; request_nbr != 10; request_nbr++) {
        char buffer[10];
        printf("Sending Hello %d…\n", request_nbr);
        zmq_send(requester, "Hello", 5, 0);
        zmq_recv(requester, buffer, 10, 0);
        printf("Received World %d\n", request_nbr);
    }
    zmq_close(requester);
    zmq_ctx_destroy(context);
    return 0;
}

运行

先启动服务端,再启动客户端,执行结果如下
zeromq的REP-REQ模式样例_第7张图片
zeromq的REP-REQ模式样例_第8张图片

你可能感兴趣的:(zeromq,zeromq)