NIO與Netty通信步驟

Linux的NIO實現(xiàn)方式

http://www.itdecent.cn/p/718c24af400f

NIO通信步驟

1.創(chuàng)建ServerSocketChannel,為它配置非阻塞模式

2.綁定監(jiān)聽,配置TCP參數(shù),錄入backlog大小等等

3.創(chuàng)建一個獨立的IO線程,用于輪詢多路復用器Selector

4.創(chuàng)建Selector,將之前創(chuàng)建的ServerSocketChannel注冊到Selector上,并設置監(jiān)聽標識位SelectionKey.ACCAPT

5.啟動IO線程,在循環(huán)體中執(zhí)行Selector.select()方法,輪詢就緒通道

6.當輪詢到處于就緒的通道時,進行操作位判斷,如果是ACCEPT狀態(tài),說明新的客戶端接入,則調(diào)用accept方法接受新的客戶端

7.設置新接入客戶端的一些參數(shù),如非阻塞、并將其通道繼續(xù)注冊到Selector之中,設置監(jiān)聽標識位等

8.如果輪詢的通道操作位是READ,則進行讀操作

Netty通信步驟

1.創(chuàng)建兩個NIO線程組,一個專門用于網(wǎng)絡事件處理(接受客戶端連接),另一個則進行網(wǎng)絡通信讀寫

2.創(chuàng)建一個ServerBootstrap對象,配置Netty的一系列參數(shù),例如接受傳出參數(shù)的緩存大小等等

3.創(chuàng)建一個實際處理數(shù)據(jù)的類ChannelInitializer,進行初始化準備工作,比如設置接受傳出數(shù)據(jù)的字符集

、格式、已經(jīng)實際處理數(shù)據(jù)的接口

4.綁定端口,執(zhí)行同步阻塞方法等待服務器端口啟動即可。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容