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
is localhost
) と同じホストで実行すると、スクリプトが接続し、リスナーが受信するメッセージを送信します。この同じプログラムを別のボックスで実行し、Rabbit を実行しているボックスのホスト名を指定すると、-9 でソケットを開こうとすると、「ソケット エラーが発生しました」というだけで終了します。「errno」は、EINPROGRESS
ノンブロッキングソケットを開こうとしたときに予想されるものです。(これは、プログラムが成功したときに表示されるエラーと同じです)。
失敗すると、rabbitmq サーバー ログには何も表示されません。
誰かがここで何がうまくいかないのか具体的に教えてくれたらうれしいのですが、私は本当に釣り竿が必要です. ここのシステムから必要な情報を取得する方法がわかりません。実際にどこから始めればよいかさえわかりません。私は実際に unix I/O をしたことがありません。次のステップのデバッグについて誰か提案してもらえますか?