I am getting confused, could anyone clarify the following points?
(Note that I am in a single thread context)

1- After a call to
  socket.async_send_to(buffer, remote_endpoint, write_handler)
followed by a call to
  socket.cancel()
 
cancel() method id not quite portable, and it's actual effect depends on the platform. Please, read the reference: http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/reference/basic_stream_socket/cancel/overload2.html