Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char buffer[10];
- async_read(socket_, asio::buffer(buffer, 8)
- , [](boost::system::error_code const & error, size_t bytes_xfer){});
- streambuf buf;
- async_read(socket_, buf
- , [](
- boost::system::error_code const & error, size_t bytes_xfer){});
- void commit(std::size_t n)
- {
- if (pptr() + n > epptr()) //тут
- n = epptr() - pptr();
- pbump(static_cast<int>(n));
- setg(eback(), gptr(), pptr());
- }
- class TCPSession
- {
- ...
- private:
- std::unique_ptr<char> receive_buffer_;
- }
- void TCPSession::read_packet_len()
- {
- receive_buffer_.reset(new char[2]());
- async_read(socket_, asio::buffer(receive_buffer_.get(), 2)
- , [my = shared_from_this()](
- boost::system::error_code const & error, size_t bytes_xfer){
- my->read_packet();
- });
- }
- void TCPSession::read_packet()
- {
- uShort datalen = 0;
- memcpy((char*)&datalen, receive_buffer_.get(), 2);
- boost::endian::endian_reverse_inplace<uShort>(datalen);
- std::cout << "datalen: " << datalen << endl; // результат 8
- receive_buffer_.reset(new char[datalen -2]());
- async_read(socket_, asio::buffer(receive_buffer_.get(), datalen - 2),
- [my=shared_from_this()](boost::system::error_code const & error, size_t bytes_xfer)
- {/*проверяю считанные символы*/});
- }
- receiveBytes();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement