Sets the non-blocking mode of the socket.
void non_blocking( bool mode, boost::system::error_code & ec);
true, the socket's synchronous operations will
boost::asio::error::would_block if they
are unable to perform the requested operation immediately. If
false, synchronous operations will block until complete.
Set to indicate what error occurred, if any.
The non-blocking mode has no effect on the behaviour of asynchronous
operations. Asynchronous operations will never fail with the error