Как устранить неполадки при открытии сокета - amqp / rabbitmq-c

Я пытаюсь приветствовать реализацию AMQP rabbitmq-c в Hello World.

У меня есть небольшой сценарий, взятый из примера, включенного в источник 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 ввода / вывода раньше. Может ли кто-нибудь сделать некоторые предложения по отладке следующих шагов?

1 ответ

Я не могу предложить какой-либо прямой совет о том, что искать дальше... но из вашего описания, похоже, что машина, на которой размещается rabbitmq, не позволяет использовать надлежащие порты TCP/IP для связи.

Я столкнулся с этим, когда несколько месяцев назад установил RabbitMQ на RedHat Linux. Мне пришлось настроить различные параметры безопасности в брандмауэре и в selinux настройка безопасности, чтобы разрешить правильные порты

Другие вопросы по тегам