Rabbitmq изменить локальный хост на IP-адрес C ++ - PullRequest
0 голосов
/ 18 мая 2018

Быстрый вопрос.Почему я не могу заменить localhost на IP-адрес?Когда я делаю это просто зависает.Я прошел учебники 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;
}

1 Ответ

0 голосов
/ 18 мая 2018

Команда RabbitMQ отслеживает список рассылки rabbitmq-users и только иногда отвечает на вопросы о StackOverflow.


После просмотра источников для парыминут, я нашел следующее:

Проверьте конструктор соединения для тестов AMQP-CPP здесь .Обратите внимание, что IP-адрес передается в виде строки, но преобразуется в определенный класс с помощью Network::Ipv4Address(ip).

Теперь посмотрите на SimplePocoHandler конструктор здесь он принимает имя хостав виде строки и передает эту строку в Poco::Net::SocketAddress address(host, port), который затем используется в качестве аргумента для connect.

Итак, в вашем случае, когда вы передаете 192.168.1.100 в качестве IP-адреса, он действительно использует этов качестве имени хоста.Вам придется изменить конструктор SimpePocoHandler для использования Network::Ipv4Address(ip) или создать отдельный конструктор с поддержкой IP-адресов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...