Boost logo

Boost Users :

From: John Urberg (john-urberg_at_[hidden])
Date: 2008-08-11 11:08:02


I'm using async_send_to to send multicast messages. When I try to send data in
a std::string, I always get a 'string iterator not dereferencable' assertion
failure. I'm using boost 1.35 and VC9. Here's the code:

// instance variable
string buffer;

// code in method
buffer = BuildHailMessage();
socket.async_send_to(
   boost::asio::buffer(buffer),
   endpoint,
   boost::bind(
      &MulticastServer::HandleSendTo,
      this,
      boost::asio::placeholders::error));

I've also tried using char* buffer, dynamically allocating it based on the
message length and then use std::copy to copy the std::string into the buffer,
but I get heap corruption assertions when trying to delete [] it.

The only way I've gotten this to work is using a fixed char[] buffer.

Is there a way I can use a std::string with async_send_to? Do I need to use a
different type of asio::buffer class?

Thanks,
John


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net