这可以用来桥接网络传输

时间:2021-11-20 01:42:44

标签:

1、zmq_proxy(3) 1.1 名称

  zmq_proxy - 开始内置ZMQ代办代理

1.2 提要

  int zmq_proxy(const void * frontend,const void * backend,const void * capture);

1.3 描述

  zmq_proxy()函数在当前应用措施线程中启动内置的ZMQ代办代理。

  代办代理将前端套接字连接到后端套接字。从观点上讲,数据畴前端流向后端。按照套接字类型的差别,答复可能会以相反的标的目的流动。标的目的只是观点上的;代办代理是完全对称的,前端和后端没有技术上的区别。

  在挪用zmq_proxy()之前,您必需设置任何套接字选项,并连接或绑定前端和后端套接字。这两种传统的代办代理模式是:

  zmq_proxy()在当前线程中运行,并且仅在当前上下文*时返回。

  如果捕获套接字不是NULL,则代办代理应将在前端和后端收到的所有动静发送到捕获套接字。捕获套接字应该是ZMQ_PUB,ZMQ_DEALER,ZMQ_PUSH或ZMQ_PAIR套接字。

  有关可用套接字类型的说明,请参阅zmq_socket(3)。

1.4 用法示例 1.4.1 共享行列队伍

  当前端是一个ZMQ_ROUTER套接字,并且后端是一个ZMQ_DEALER套接字时,代办代理处事器将作为一个共享行列队伍来收集来自一组客户真个请求,并在一组处事中公平地分配这些请求。 请求应畴前端连接公平排队并均匀漫衍在后端连接中。 答复将自动返回到发出原始请求的客户端。

1.4.2 转发

  当前端是一个ZMQ_XSUB套接字,并且后端是一个ZMQ_XPUB套接字时,该代办代理将作为一个动静转发器来收集来自一组颁布者的动静,并将这些动静转发给一组订阅者。 这可以用来桥接网络传输,例如, 阅读tcp://并在pgm://上转发。

1.4.3 流

  当前端是ZMQ_PULL套接字,后端是ZMQ_PUSH套接字时,,代办代理处事器应从一组客户端收集任务并使用管道模式将这些任务转发给一组事情人员。

1.4.4 返回值

  zmq_proxy()函数始终返回-1,并将errno设置为ETERM(与任一指定套接字关联的ZMQ上下文已终止)。

2、zmq_proxy_steerable() 2.1 名称

  zmq_proxy_steerable - 内置带控制流的ZMQ代办代理

2.2 提要

  int zmq_proxy_steerable(const void * frontend,const void * backend,const void * capture,const void * control);

2.3 描述

  zmq_proxy_steerable()函数在当前应用措施线程中启动内置的ZMQ代办代理,如zmq_proxy()所做的那样。请参阅此成果的一般说明和用法。我们在这里只描述由作为第四个参数“control”通报的套接字供给的附加控制流。

  如果控制套接字不是NULL,则代办代理撑持控制流。如果在此套接字上收到PAUSE,代办代理将暂停其勾当。如果收到RESUME,它会继续。如果接收到TERMINATE,它将顺利终止。在开始时,代办代理正常运行,就像使用zmq_proxy一样。

  如果控件套接字为NULL,则该函数的行为与挪用zmq_proxy时的行为完全不异。

  有关可用套接字类型的说明,请参阅zmq_socket(3)。有关zmq_proxy的说明,请参阅zmq_proxy(3)。

2.4 用法示例

  对照zmq_proxy

2.5 返回值

  如果将TERMINATE发送到其控制套接字,则zmq_proxy_steerable()函数返回0。否则,它返回-1,并将errno设置为ETERM(与任一指定套接字关联的ZMQ上下文已终止)。

ZeroMQ API(六) 代办代理

标签:

原文地点:https://www.cnblogs.com/ChinaHook/p/8964860.html