| Home | Libraries | People | FAQ | More

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

Close the socket.

    boost::system::error_code close(
        boost::system::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 `boost::asio::error::operation_aborted` error.

###### Parameters

ec

  Set to indicate what error occurred, if any. Note that, even if the function indicates an error, the underlying descriptor is closed.

###### Example

    boost::asio::ip::tcp::socket socket(io_service);
    ...
    boost::system::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.