快问快答为什么我不能用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;
}
1条答案
按热度按时间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地址的构造函数。