Java NIO 中 SocketChannel 和 DatagramChannel 的使用详解
1. SocketChannel 连接过程
在 Java NIO 中, SocketChannel
用于建立网络连接。要完成连接过程,可调用 finishConnect()
方法,该方法可在任何时候安全调用。当在非阻塞模式的 SocketChannel
对象上调用 finishConnect()
时,会出现以下几种情况:
- connect()
方法未调用 :抛出 NoConnectionPendingException
。
- 连接正在进行但未完成 :无操作, finishConnect()
立即返回 false
。
- connect()
在非阻塞模式调用后, SocketChannel
切换回阻塞模式 :必要时,调用线程会阻塞直到连接建立完成, finishConnect()
返回 true
。
- 自初始调用 connect()
或上次调用 finishConnect()
后连接已完成 : Socke