【发布时间】:2015-09-12 00:14:33
【问题描述】:
客户正在写这样
std::string line;
std::cin>>line;
boost::asio::write(socket, boost::asio::buffer(line));
服务器正在读取这样
void reader(){
socket_.async_read_some(boost::asio::buffer(buf),
boost::bind(&tcp_connection::handle_read,shared_from_this()));
}
void handle_read()
{
std::cout.write(buf.data(),1024);
std::cout<<"\n";
}
tcp::socket socket_;
boost::array<char, 1024> buf;
现在当我从客户端写一行“你好,你好吗”时,它只是打印“你好”,然后是垃圾值
这是服务器显示的输出:
helloA0�B��B�����a�Pa�!0�B�b����uB�`�#K|BP�b��D4B���Bb�Pa���e��e�����pc�!0�Be���xB�`�#KcBe�:7B�����e��e���
如何删除这些垃圾值并从客户端获取完整的消息/行
【问题讨论】:
标签: c++ sockets c++11 boost boost-asio