13-高併發-netty原理和基礎-詳解Channel通道

        protected AbstractChannel(Channel parent) {
            this.parent = parent; //父通道//對於連接監聽通道來說,其父通道爲null
            id = newId();
            unsafe = newUnsafe(); //底層的NIO通道,完成實際的IO操作
            pipeline = newChannelPipeline(); //一條通道,擁有一條流水線
        }

方法1. ChannelFuture connect(SocketAddress address)
此方法的作用爲:連接遠程服務器。方法的參數爲遠程服務器的地址,調用後會立即返回,返回值爲負責連接操作的異步任務ChannelFuture。此方法在客戶端的傳輸通道使用。
方法2. ChannelFuture bind(SocketAddress address)
此方法的作用爲:綁定監聽地址,開始監聽新的客戶端連接。此方法在服務器的新連接監聽和接收通道使用。
方法3. ChannelFuture close()
此方法的作用爲:關閉通道連接,返回連接關閉的ChannelFuture異步任務。如果需要在連接正式關閉後執行其他操作,則需要爲異步任務設置回調方法;或者調用ChannelFuture異步任務的sync( ) 方法來阻塞當前線程,一直等到通道關閉的異步任務執行完畢。
方法4. Channel read()
此方法的作用爲:讀取通道數據,並且啓動入站處理。具體來說,從內部的Java NIO Channel通道讀取數據,然後啓動內部的Pipeline流水線,開啓數據讀取的入站處理。此方法的返回通道自身用於鏈式調用。
方法5. ChannelFuture write(Object o)
此方法的作用爲:啓程出站流水處理,把處理後的最終數據寫到底層Java NIO通道。此方法的返回值爲出站處理的異步處理任務。
方法6. Channel flush()
此方法的作用爲:將緩衝區中的數據立即寫出到對端。並不是每一次write操作都是將數據直接寫出到對端,write操作的作用在大部分情況下僅僅是寫入到操作系統的緩衝區,操作系統會將根據緩衝區的情況,決定什麼時候把數據寫到對端。而執行flush()方法立即將緩衝區的數據寫到對端。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章