【发布时间】:2013-12-21 08:22:43
【问题描述】:
这是我的代码:
void do_read_header()
{
std::string incoming_header;
boost::asio::async_read(socket_, boost::asio::buffer(incoming_header, incoming_header.length()), [this, incoming_header](boost::system::error_code ec, std::size_t)
{
if (!ec && check_message(incoming_header))
{
do_read_body();
}
//else
//{
// socket_.close();
//}
});
}
void do_read_body()
{
std::string incoming_message;
boost::asio::async_read(socket_, boost::asio::buffer(incoming_message, incoming_message.length()), [this, incoming_message](boost::system::error_code ec, std::size_t)
{
if (!ec)
{
std::cout.write(incoming_message.c_str(), incoming_message.length());
std::cout << "\n";
//do_read_header();
//}
//else
//{
socket_.close();
}
});
}
这是一个修改版:http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/example/cpp11/chat/chat_client.cpp
我的代码有什么问题?
【问题讨论】:
-
你遇到了什么错误?请清楚地解释一下,,
-
找到了,incoming_header 必须是char*...
-
在执行速度方面最快的方法是将字符串转换为 char*