我正在尝试Hello World,AMQP的rabbitmq-c实现。
我从rabbitmq-c源代码附带的示例中采用了一个小脚本。下面是一段代码:
socket = amqp_tcp_socket_new(conn);
if (!socket) {
die("creating TCP socket");
}
status = amqp_socket_open(socket, hostname, port);
if (status) {
die(amqp_error_string2(status));
}
printf ("Error opening socket: %s\n",strerror(errno));如果我在与rabbitmq服务器进程相同的主机上运行此脚本(即,hostname为localhost),则该脚本将连接并发送一条消息,该消息由侦听器接收。如果我在不同的机器上运行相同的程序,并提供运行Rabbit的机器的主机名,那么当它试图用-9打开套接字时,它就会死掉,这只是“发生了套接字错误”。"errno“只是当我试图打开一个非阻塞套接字时所期望的EINPROGRESS。(我看到的错误与程序成功时的错误相同)。
失败时,rabbitmq服务器日志中不会显示任何内容。
如果有人能告诉我这里到底出了什么问题,我会很高兴,但我真的需要一根钓鱼杆。我不知道如何从这里的系统中获得我需要的信息,甚至不知道从哪里开始。我以前从来没有真正做过unix I/O。有没有人能给出一些关于调试下一步的建议?
发布于 2015-07-30 06:25:14
关于下一步要找什么,我真的不能提供任何直接的建议。但从您的描述来看,托管rabbitmq的机器似乎不允许使用正确的TCP/IP端口进行通信。
几个月前,当我在RedHat Linux上安装RabbitMQ时,我遇到了这个问题。我必须在防火墙和selinux安全设置中配置各种安全设置,以允许正确的端口
https://stackoverflow.com/questions/31710595
复制相似问题