從Java Socket非阻塞到Netty入門流程

本博客 貓叔的博客,轉載請申明出處

閱讀本文約 “4分鐘”

適讀人羣:同學

Java IO,Socket非阻塞通信流程

這裏我們使用一個內嵌的永久循環,來讓Socket成爲一個非阻塞的通信流程。

image

如上圖所示,ServerSocket是我們自建的一個類,通過啓動線程,且線程內置一個真循環,防止accept阻塞

在客戶端監聽類上,將監聽到的socket作爲參數,傳遞到客戶端監聽類上,並再次啓動線程,獲取一個InputStream,同時再次在這個剛剛啓動線程內置一個真循環,爲的是不斷獲取信息並回寫

這裏要注意的是,第一個真循環是保證獲取新連接不會阻塞,第二個真循環是保證不停的獲取客戶端信息並回寫

關於客戶端則通過端口和IP,啓動線程,通過一個循環不停的向服務端寫數據;

Netty入門

基於上面的圖,我們也可以學習Netty相關的基礎入門。

image

NioEventLoop(事件循環)

1、新連接接入

2、連接上的數據讀取

Channel(抽象連接)

Socket、SocektChannel(IONIO)抽象

ChannelHandler(業務邏輯處理)

讀寫數據期間的業務層

PipeLine(動態鏈處理)

多個ChannelHandler組成,讓消息可以層層處理

ByteBuf(數據接收)

基本的數據處理基於ByteBu

公衆號:Java貓說

學習交流羣:728698035

現架構設計(碼農)兼創業技術顧問,不羈平庸,熱愛開源,雜談程序人生與不定期乾貨。

Image Text

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