title: Boost Asio Socket issue
body: <p>I'm new to Boost. I'm developing a little server. I have an issue when a client sends a message to my server. My server calls the function to read on the socket twice</p>
  
  <p>this is the code in my client class </p>
  
  <pre><code>void ClientManager::ToRecv(void)
  {
      this-&gt;_socket.async_read_some(boost::asio::buffer(_buffer),
      _strand.wrap(boost::bind(&amp;ClientManager::HandleRead, this, boost::asio::placeholders::error))
      );
  }
  
  void ClientManager::HandleRead(boost::system::error_code const &amp; error)
  {
      _mutex.lock();
      std::cout &lt;&lt; boost::this_thread::get_id() &lt;&lt; " client-&gt;HandleRead()" &lt;&lt; std::endl;
      for (unsigned int i = 0; i &lt; _buffer.size(); ++i)
      {
           std::cout &lt;&lt; _buffer[i]; // I display the message
      }
      std::cout &lt;&lt; std::endl;
      _mutex.unlock();
  
      this-&gt;ToRecv();
   }
  </code></pre>
  
  <p>When a client connects, I call the start function. This is what display in the console when I launch my server:</p>
  
  <p>I create 3 threads.</p>
  
  <pre><code>Server Connect
  [004FE200] Thread Start
  [004FE238] Thread Start
  [004FE7C8] Thread Start
  </code></pre>
  
  <p>and this is when i connect a putty client to my server</p>
  
  <pre><code>[004FE7C8] acceptor-&gt;NewClient()
  [004FE7C8] client-&gt;Start()
  </code></pre>
  
  <p>and this is what my server displays when the client send "hello world".</p>
  
  <pre><code>[004FE238] client-&gt;HandleRead()
  hello world
  
  [004FE7C8] client-&gt;HandleRead()
  llo world
  </code></pre>