Complete the connection.
This method is used when the channel is connectable to finish the connection, and the connectable status of a channel means the channel is after initiating in non-blocking mode and calling its
connect method. It will throw related
IOException if the connection failed.
This method will return
true if the connection is finished already, and return
false if the channel is non-blocking and the connection is not finished yet.
If the channel is in blocking mode, this method will suspend, and return
true for connection finished or throw some exception otherwise. The channel will be closed if the connection failed and this method thrown some exception.
This method can be called at any moment, and can block other read and write operations while connecting.
if the connection is successfully finished,
@throws NoConnectionPendingException If the channel is not connected and the connection is not initiated.
@throws ClosedChannelException If the channel is already closed.
@throws AsynchronousCloseException If the channel is closed by another thread while this method is in operation.
@throws ClosedByInterruptException If another thread interrupts the calling thread while the operation is in progress. The calling thread will have the interrupt state set, and the channel will be closed.
@throws IOException Some other IO error occurred.