gpt4 book ai didi

c++ - 0MQ - 获取消息 ip

转载 作者:IT老高 更新时间:2023-10-28 22:35:54 26 4
gpt4 key购买 nike

首先,我要感谢这个了不起的库!我喜欢它。客户端将自己连接到服务器。服务器应该保存 IP 并稍后使用它(我真的需要 IP)。我找到了答案:http://lists.zeromq.org/pipermail/zeromq-dev/2010-September/006381.html但我不明白如何从消息中获取 IP(XREP)......我想我只能读取 ID,但 IP 由 0MQ 在内部管理。他的第二个解决方案建议将 IP 作为消息的一部分发送,但我不明白如何获取“公共(public)”-IP。我发现那个帖子:Get TCP address information in ZeroMQ

 is pass bind a service to an ephemeral port, get a full connection endpoint ("tcp://ipaddress:port")

我不明白这是如何工作的。他是指网络服务之类的东西吗?在我看来,最好将 IP 从 0MQ 中取出(它已经有 IP)。我什至会为此调整 0MQ,如果有人可以指向保存 IP 的地方,但找不到它。目前,套接字类型并不那么重要。我更喜欢 REQ-REP 之类的东西。谢谢!

最佳答案

总结:

TL;DR 对您的问题的回答是:您无法使用 ZeroMQ API 获取发送消息的对等方的 IP 地址。

说明:

ZeroMQ 不公开对等 IP 地址,因为它与 ZeroMQ 所设计的基于消息的通信无关。当 ZeroMQ 可以获取连接到 serverclient 的 IP 地址时(例如使用描述的方法 here ),它是没有用的。这里更详细的解释是它是如何在 ZeroMQ 和任何其他服务器实现中工作的。

Server 连接端不通过将 IP 映射到客户端的哈希表来处理连接的 clients,而是通过跟踪连接的“套接字”(socket描述符) - 当服务器接受(使用accept())连接时,它从操作系统套接字描述符接收以用于与连接的对等方通信。所有服务器所要做的就是保留该描述符以从该客户端读取()和写入()。另一个连接到服务器的客户端接收另一个套接字描述符。

总结一下:即使 ZeroMQ 能够为您提供已连接对等方的 IP,您也不应该依赖它。 ZeroMQ 对您隐藏了连接管理,因此您可以专注于消息传递。连接管理包括重新连接,这可能会导致 IP 更改,而不会更改另一端连接的实际 ZeroMQ 套接字。

关于c++ - 0MQ - 获取消息 ip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com