2016-11-10 19 views
2

ポートをリッスンしているJavaサーバーにネットワーク経由でデータを送信できるプログラムを作成しようとしています。ブーストasioクライアントからのデータの送信

#include "stdafx.h" 
#include <boost/asio.hpp> 
#include <boost/array.hpp> 
#include <iostream> 

void do_somenetwork(std::string host, int port, std::string message) 
{ 
    std::array<char, 1024> _arr; 
    boost::asio::io_service ios; 
    boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host), port); 
    boost::asio::ip::tcp::socket socket(ios); 
    socket.connect(endpoint); 

    boost::array<char, 128> buf; 
    std::copy(message.begin(), message.end(), buf.begin()); 
    boost::system::error_code error; 

    socket.write_some(boost::asio::buffer(buf, message.size()), error); 

    socket.read_some(boost::asio::buffer(_arr)); 
    std::cout.write(&_arr[0], 1024); 

    socket.close(); 
} 

int main(){ 
    do_somenetwork(std::string("127.0.0.1"), 50000, ";llsdfsdf"); 

    char ch; 
    std::cin >> ch; 
} 

以下のように私は、エラーメッセージが出続けるこのプログラムを使用します。私は警告を試してみましたが、このエラーに関連する結果を発見していない

C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe -  this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 2132 1 ConsoleApplication1 

。このコードを書く良い方法はありますか?私はC++には本当に新しく、Boostが実際にどのように動作しているかについてはあまり考えていません。 私はVisual Studio 2013を使用しており、1.60.0を向上させています。

答えて

0

あなたの質問に対する回答ではなく、むしろ回避策です。

私はエラーがstd::copy呼び出しから来て、あなたが直接あなたの代わりにboost::arrayでそれをコピーするバッファ配列としてstd::stringからdata方法を使用して、それを回避することができると思います。このよう

socket.write_some(boost::asio::buffer(message.data(), message.size()), error);

+0

ありがとうございました。これは私の問題を解決します。私はスタックオーバーフローも新しく、私はそれが私の懸念を解決したという理由だけで解決策として受け入れるべきですか? – masterconqueror

+0

@ masterconqueror [ヘルプトピック](http://stackoverflow.com/help/someone-answers)とこの[1](http://stackoverflow.com/help/accepted-answer)を参照して読んでくださいこの場合、何をすべきかについての詳細。スタックオーバーフローを歓迎します:) – Wexiwa

関連する問題