摘要:抽象在中步驟監聽端口對應就是,即事件循環,這里的循環包括兩個部分,一個是新連接的接入,而另一個則是當前存在連接的數據流的讀寫。對的抽象服務端接收數據流的載體都是基于,封裝了許多高可用的,我們可以基于這些與底層數據流做通信。
傳統socket
首先還是先了解下傳統socket下的通信流程
流程很清晰,細節不講太多。
Netty抽象在netty中步驟1監聽端口對應就是NioEventLoop,即事件循環,這里的循環包括兩個部分,一個是新連接的接入,而另一個則是當前存在連接的數據流的讀寫。
接著接到一個新用戶的連接,而其在java底層是作為Socket來處理,即在IO下是socket,NIO下是SocketChannel,而Netty將其自定義封裝為Channel,基于此Channel,一系列的讀寫都可以在其連接上工作。(對Socket的抽象)
服務端接收數據流的載體都是基于ByteBuf,ByteBuf封裝了許多高可用的API,我們可以基于這些API與底層數據流做通信。
當數據流到達服務端后,服務端需要處理一些業務邏輯,這時就是ChannelHandler。我們也可以自定義Java對象,在ChannelHandler中做處理,數據包的分包、不同類型數據包的Java轉換。
數據流的寫出也是基于ByteBuf。
ChannelHandler是一個列的形式。Netty將這些邏輯串了起來,讓用戶方便的對業務做處理。
相關項目關于Netty的產品導向項目 UncleCatMySelf/SBToNettyChat
如果本文對你有所幫助,歡迎關注本人技術公眾號,謝謝。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77209.html
摘要:它使用了事件通知以確定在一組非阻塞套接字中有哪些已經就緒能夠進行相關的操作。目前,可以把看作是傳入入站或者傳出出站數據的載體。出站事件是未來將會觸發的某個動作的操作結果,這些動作包括打開或者關閉到遠程節點的連接將數據寫到或者沖刷到套接字。 netty的概念 定義 Netty 是一款異步的事件驅動的網絡應用程序框架,支持快速地開發可維護的高性能的面向協議的服務器和客戶端。我們可以很簡單的...
摘要:事件循環新連接接入連接上的數據讀取抽象連接抽象業務邏輯處理讀寫數據期間的業務層動態鏈處理多個組成,讓消息可以層層處理數據接收基本的數據處理基于公眾號貓說學習交流群現架構設計碼農兼創業技術顧問,不羈平庸,熱愛開源,雜談程序人生與不定期干貨。 本博客 貓叔的博客,轉載請申明出處閱讀本文約 4分鐘 適讀人群:同學 Java IO,Socket非阻塞通信流程 這里我們使用一個內嵌的永久循環,...
摘要:目錄源碼分析之番外篇的前生今世的前生今世之一簡介的前生今世之二小結的前生今世之三詳解的前生今世之四詳解源碼分析之零磨刀不誤砍柴工源碼分析環境搭建源碼分析之一揭開神秘的紅蓋頭源碼分析之一揭開神秘的紅蓋頭客戶端源碼分析之一揭開神秘的紅蓋頭服務器 目錄 Netty 源碼分析之 番外篇 Java NIO 的前生今世 Java NIO 的前生今世 之一 簡介 Java NIO 的前生今世 ...
摘要:豐富的緩存數據結構使用它自己的緩存來表示字節序列而不是的。針對有一個定義良好的事件模型。有一些協議是多層的建立在其他低級協議基礎上。此外,甚至不是完全線程安全的。協議由標準化為。協議緩存整合是一個高效二進制協議的快速實現。 Chapter 2、結構概覽 這一節我們將確認Netty提供的核心功能是什么,以及它們怎么構成一個完整的網絡應用開發堆棧。 1、豐富的緩存數據結構 Netty使用它...
摘要:下面無恥的貼點源碼。啟動類我們也學,把啟動類抽象成兩層,方便以后寫客戶端。別著急,我們慢慢來,下一篇我們會了解以及他的成員,然后,完善我們的程序,增加其接收數據的能力。文章的源碼我會同步更新到我的上,歡迎大家,哈哈。 廢話兩句 這次更新拖了很長時間,第一是自己生病了,第二是因為最開始這篇想寫的很大,然后構思了很久,發現不太合適把很多東西寫在一起,所以做了點拆分,準備國慶前完成這篇博客。...
閱讀 3189·2023-04-26 03:06
閱讀 3689·2021-11-22 09:34
閱讀 1134·2021-10-08 10:05
閱讀 3024·2021-09-22 15:53
閱讀 3530·2021-09-14 18:05
閱讀 1387·2021-08-05 09:56
閱讀 1880·2019-08-30 15:56
閱讀 2124·2019-08-29 11:02