NIO通信中connect()方法和finishConnect()方法的區別


1、對於阻塞模式下,調用connect()進行連接操作時,會一直阻塞到連接建立完成(無連接異常的情況下)。所以可以不用finishConnect來確認。

2、但在非阻塞模式下,connect()操作是調用后直接返回結果的,有可能是true(如本地連接),也可能是false(在部分情況下是false)。所以為了確定后續IO操作正常進行需等待連接的建立,這時finishConnect的作用就出來了。可以阻塞到連接建立好。

另外,Channel的連接操作,需要先進行connect()后才能調finishConnect,如果直接調用finishConnect會出現NoConnectionPendingException異常。這個需要注意下。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM