client.isConnectionPending()这里能麻烦老师在原理层面讲解一下吗?

来源:7-8 NIO模型实现ChatClient_1

EverL

2019-09-10

if (client.isConnectionPending()) {
   client.finishConnect();
}


写回答

1回答

Stannum

2019-09-17

同学你好~

由于我们使用的SocketChannel处于非阻塞模式,当调用connect()方法时,调用会立即返回,但是连接的过程还在进行,需要后续调用finishConnect()方法来完成连接过程。在连接过程已经启动,但尚未完成之前,isConnectionPending()会返回true,这就是我们此时在检测的状态。如果连接未能正常创建,调用finishConnect()则会抛出IOException异常,标志着连接失败。

0
1
EverL
非常感谢!
2019-09-17
共1条回复

系统学习Java网络编程 深度理解BIO/NIO/AIO

对比式学习助你真正理解BIO/NIO/AIO三大网络编程模型。

880 学习 · 148 问题

查看课程