Is it possible to read the extra data that wasn't added to the buffer when a datagram is received ?
 
E.g.  given an initial receive instruction something like:
 
  char m_buf[10];
  udp::endpoint m_endpoint;
<-->
  udpSocket.async_receive_from(buffer(buf), m_endpoint, bind(ReadHandler, ...));
  service.run();
 
If more than 10 characters were in the datagram packet, how can they be accessed?
Calling other read methods (after processing in the ReadHandler) just appears to block (I guess it is looking for another packet).
 
Surely I don't have to ensure the buffer is as large as I'll ever need it to be?