1、對於阻塞模式下,調用connect()進行連接操作時,會一直阻塞到連接建立完成(無連接異常的情況下)。所以可以不用finishConnect來確認。
2、但在非阻塞模式下,connect()操作是調用后直接返回結果的,有可能是true(如本地連接),也可能是false(在部分情況下是false)。所以為了確定后續IO操作正常進行需等待連接的建立,這時finishConnect的作用就出來了。可以阻塞到連接建立好。
另外,Channel的連接操作,需要先進行connect()后才能調finishConnect,如果直接調用finishConnect會出現NoConnectionPendingException異常。這個需要注意下。