请求重放模式中的 ZeroMQ 只允许来自特定 IP 的请求

时间:2021-07-04 20:01:44

标签: c zeromq distributed-system

如何仅在 0MQ 请求-回复模式中允许来自特定 IP 地址的请求。 我不想收到来自任何其他 IP 地址的请求。我只想在两个 IP 地址之间进行通信,第一个是请求生成器,第二个是回复生成器。

请求.c

#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>

int main(void) {
    void *context = zmq_ctx_new();
    void *requester = zmq_socket(context, ZMQ_REQ);
    zmq_connect(requester, "tcp://127.0.0.1:5555");

    char buffer[10];
    printf ("Sending Hello\n");
    zmq_send(requester, "Hello", 5, 0);
    zmq_recv(requester, buffer, 10, 0);
    printf("Received: %s\n", buffer);

    zmq_close (requester);
    zmq_ctx_destroy (context);

    return 0;
}

回复.c

#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <assert.h>

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

    char buffer[10];
    zmq_recv(responder, buffer, 10, 0);
    printf("Recived: %s\n", buffer);
    sleep(1);
    zmq_send(responder, "World", 5, 0);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

来自评论:

<块引用>

stackoverflow.com/questions/20336954/0mq-get-message-ip 是 不可能的。请勿使用 0MQ 并使用其他工具。