2017-04-20 7 views
0

私はelasticsearchサーバーへのPOSTを行うためにC++スニペットを作成しようとしています。サーバーは、IP 172.20.1.160上で実行されている、と私はElasticsearchチュートリアルのように、カールを使用してデータを置くことができます:boostseioを使ってelasticsearchに接続するには?

curl -XPUT 'localhost:9200/twitter/tweet/1?op_type=create&pretty' -H 'Content-Type: application/json' -d' 

{ "ユーザー": "kimchy"、 "post_date":「2009-11 -15T14:12:12" 、 "メッセージ": "" をElasticsearchを試し} 「

しかし、私はブーストASIOと似た何かをしようとすると、私の接続が明らかに拒否されます。

は、ここで私は、接続を作成しようとする方法を示す、最小限のコンパイル可能コードをだし、どのエラー生成:それは価値がある何のため

/// Compiled with: 
///  g++ --std=c++14 foo.cpp -lboost_system -lpthread 
#include <boost/asio.hpp> 

constexpr const char *carbon_port = "2003"; 
constexpr const char *ES_port  = "9200"; 
constexpr const char *server_ip  = "172.20.1.160"; 


int main() 
{ 
    boost::asio::io_service io_service; 
    boost::asio::ip::tcp::resolver resolver(io_service); 
    boost::asio::ip::tcp::resolver::query query(server_ip, ES_port); 
    auto endpoint = *resolver.resolve(query); 
    boost::asio::ip::tcp::socket socket (io_service); 
    socket.connect(endpoint); 
} 

を、私はまた、同じマシン上で実行されているカーボングラファイトサーバーを持っている、と私は例外を取得し、接続して、プレーンテキストのプロトコルを介してそこにデータを送信するが、私はelasticsearchへのソケット接続を作成することができませんすることができます

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >' 
    what(): connect: Connection refused 

誰かが私を取得するために知っておく必要があるものに私を啓発することができますこれは働いている?デフォルトelasticsearch はlocalhostからを聴取することにより

+0

同じIPから送信されたリクエストですか? – Satya

+0

はい、そうです。それは重要ですか? – Spacemoose

+0

IPの代わりにlocalhostを使用してみてください。ちょうど1セント – Satya

答えて

0

だけ、あなたはそれが行network.host: 0.0.0.0を追加し、elasticsearchを再起動config/elasticsearch.ymlで、すべてのポートに聴きたい場合。

+0

まあ、ありがとう、私は明らかにそれを逃した。 – Spacemoose

+0

]私たちはすべて学ぶ:) – Satya

関連する問題