Rabbitmq将本地主机更改为IP地址C++

aoyhnmkz  于 2023-10-20  发布在  RabbitMQ
关注(0)|答案(1)|浏览(174)

快问快答为什么我不能用IP地址替换localhost?当我这样做的时候,它只是冻结。我已经通过了Java教程,我能够做到这一点,但由于某种原因,它不工作在C++。
我正在使用此链接https://github.com/RPG-18/rabbitmq-cpp-tutorials

#include

#include "SimplePocoHandler.h"

int main(void)
{
    SimplePocoHandler handler("localhost", 5672);

    AMQP::Connection connection(&handler, AMQP::Login("guest", "guest"), "/");
    AMQP::Channel channel(&connection);

    channel.onReady([&]()
    {
        if(handler.connected())
        {
            channel.publish("", "hello", "Hello World!");
            std::cout << " [x] Sent 'Hello World!'" << std::endl;
            handler.quit();
        }
    });

    handler.loop();
    return 0;
}
uyhoqukh

uyhoqukh1#

在浏览了the sources几分钟后,我发现了以下内容:
在这里查看AMQP-CPP测试的连接构造器。请注意,ip地址是作为字符串传入的,但使用Network::Ipv4Address(ip)转换为特定的类。
现在,看看SimplePocoHandler构造函数,它将主机名作为字符串,并将该字符串传递给Poco::Net::SocketAddress address(host, port),然后将其用作connect的参数。
因此,在您的情况下,当您将192.168.1.100作为ip地址传递时,它实际上是将其用作主机名。您必须修改SimpePocoHandler构造函数以使用Network::Ipv4Address(ip),或者创建一个单独的、可识别ip地址的构造函数。

相关问题