|  | 
Sets the non-blocking mode of the socket.
void non_blocking(
    bool mode);
                  If true, the socket's synchronous operations will
                  fail with asio::error::would_block if they are unable
                  to perform the requested operation immediately. If false,
                  synchronous operations will block until complete.
                
Thrown on failure.
            The non-blocking mode has no effect on the behaviour of asynchronous
            operations. Asynchronous operations will never fail with the error asio::error::would_block.