##### basic_socket::close (2 of 2 overloads)

Close the socket.

    asio::error_code close(
        asio::error_code & ec);

This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the asio::error::operation_aborted error.

###### Parameters

ec

  Set to indicate what error occurred, if any.

###### Example

    asio::ip::tcp::socket socket(io_service);
    ...
    asio::error_code ec;
    socket.close(ec);
    if (ec)
    {
      // An error occurred.
    }

###### Remarks

For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.