我正在使用 zmq_socket_monitor 服务来使用线程生成方法监视 ZMQ_REP 套接字。但据我所知,此服务仅适用于 INPROC,不适用于远程机器。
My Main code:
void *ctx = zmq_init (1);
void *rep = zmq_socket (ctx, ZMQ_REP);
int rc = zmq_socket_monitor (rep, "inproc://monitor.req", ZMQ_EVENT_ALL);
My Thread Code:
void rep_socket_monitor (void *ctx)
{
zmq_event_t event;
void *s = zmq_socket (ctx, ZMQ_PAIR);
rc = zmq_connect (s, "inproc://monitor.req");
while (true)
{
zmq_msg_t msg;
rc = zmq_recvmsg (s, &msg, 0);
memcpy (&event, zmq_msg_data (&msg), sizeof (event));
switch (event.event)
{
//Check for events
}
}
}
在这里,如果我检查任何事件,我会得到我自己机器的监控地址。如果某个远程机器客户端尝试连接到我怎么办。当它连接到我正在监视的端口时,我如何获取它的 IP 地址。