Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. char buffer[10];
  2. async_read(socket_, asio::buffer(buffer, 8)
  3. , [](boost::system::error_code const & error, size_t bytes_xfer){});
  4.  
  5. streambuf buf;
  6. async_read(socket_, buf
  7. , [](
  8. boost::system::error_code const & error, size_t bytes_xfer){});
  9.  
  10. void commit(std::size_t n)
  11. {
  12. if (pptr() + n > epptr()) //тут
  13. n = epptr() - pptr();
  14. pbump(static_cast<int>(n));
  15. setg(eback(), gptr(), pptr());
  16. }
  17.  
  18. class TCPSession
  19. {
  20. ...
  21. private:
  22. std::unique_ptr<char> receive_buffer_;
  23. }
  24. void TCPSession::read_packet_len()
  25. {
  26.  
  27. receive_buffer_.reset(new char[2]());
  28. async_read(socket_, asio::buffer(receive_buffer_.get(), 2)
  29. , [my = shared_from_this()](
  30. boost::system::error_code const & error, size_t bytes_xfer){
  31. my->read_packet();
  32. });
  33. }
  34.  
  35. void TCPSession::read_packet()
  36. {
  37.  
  38. uShort datalen = 0;
  39. memcpy((char*)&datalen, receive_buffer_.get(), 2);
  40. boost::endian::endian_reverse_inplace<uShort>(datalen);
  41. std::cout << "datalen: " << datalen << endl; // результат 8
  42. receive_buffer_.reset(new char[datalen -2]());
  43. async_read(socket_, asio::buffer(receive_buffer_.get(), datalen - 2),
  44. [my=shared_from_this()](boost::system::error_code const & error, size_t bytes_xfer)
  45. {/*проверяю считанные символы*/});
  46. }
  47.  
  48. receiveBytes();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement