Mina--結構分析
1 Mina工作流程:
IoConnector-》IOprcessor-》IOFilter-Handler-》IOAcceptor-》
IOProcess-》IOFilter-》Handler-》IOconnector
2 核心類說明:
2.1 IOService介面,子介面是IoConnector和IoAcceptor,分別用來描述我們的客戶端和伺服器端
getFilterChain:獲取過濾鏈
setHandler(IoHandler handler):設定我們真正的業務
getSessionConfig()得到我們的配置資訊
disponse()在我們完成關閉連線的時候所吊用的方法。
2.2 IoConnector
connect(SocketAddress remoteAddress)主要使用者發起一個連線請求
setConnectTimeout(int connectTimeout)連線超時的設定
2.3 IoProcess:是以NIO為基礎實現的多執行緒的方式來完成我們的讀寫工作。為我們的Filter讀寫原始資料的多執行緒的環境。
通過 NioSocketAcceptor(int processorCount)建構函式可以指定多執行緒的個數
通過 NioSocketConnector(int processorCount)建構函式也可以指定多執行緒的個數。
2.4 IOFilter
是在應用層和我們業務層之間的過濾成,自定義過濾器繼承IoFilterAdapte,r在handler處理之前,需要呼叫相應的過濾器進行過濾
Client:業務Handler之前會弔用我們的過濾器
Server:同樣在我們直接得到資料的時候,和傳送資料的時候也呼叫了我們的過濾器,然後
才交給我們的handler。
2.5 IoAcceptor
bind(SocketAddress loaclAddress)繫結埠
getLocalAddress()獲得本地IP地址
2.6 IoSession:描述的是客戶端和服務端連線的描述,常常用於傳送和接受資料
主要描述我們的網路通訊雙方所建立的連線之間的描述
IOSession:可以傳送和讀取資料,並且可以設定我們會話的上下文資訊
IOSessionConfig:設定讀寫緩衝區的一些資訊。
2.7 NioSocketConnector
connect(SocketChannel handle, SocketAddress remoteAddress) 連線請求
register(SocketChannel handle, ConnectionRequest request) 註冊我們的IO事件
Select(int timeout)返回選擇器
2.8 IoBuffer:基於JavaNio中的BytesBuffer做了封裝,使用者操作緩衝區中的資料,包括基本資料型別以及位元組陣列和一些物件,其本質就是一個可動態擴充套件的byte陣列。
allocate(int capacity)指定大小空間
setAutoExpand(Boolean autoExpand)可以設定是否支援動態的擴充套件。
putString(CharSequence val, CharsetEncoder encoder)
putShort(short value);實現將資料放入緩衝區中。
reset:實現清空資料
Clear:實現資料的覆蓋,
3 實際使用的過程中客戶端採用NIOSocketConnector,而客戶端採用NioSocketAcceptor
demo下載地址:http://download.csdn.net/download/btwangzhi/10003561
相關文章
- Mina--入門
- URL 結構分析
- 結構化分析
- uboot 結構分析boot
- PE結構分析(二)
- 分析Angular目錄結構Angular
- ArrayList 資料結構分析資料結構
- wsdl檔案結構分析
- bitmap indexes 的結構分析Index
- Unbound資料結構分析資料結構
- C/S結構與B/S結構的特點分析
- iOS探索 類的結構分析iOS
- REdis AOF檔案結構分析Redis
- Android 目錄結構分析Android
- HashMap+concurrentHashMap 結構分析HashMap
- LinkedList 資料結構分析資料結構
- Dedecms 資料庫 結構分析資料庫
- Android 原始碼結構分析Android原始碼
- ResultSet的方法和結構分析
- Laravel的目錄結構分析Laravel
- slab原始碼分析--主要資料結構分析原始碼資料結構
- Faiss原始碼剖析:類結構分析AI原始碼
- Webstorm 新建 Express 專案結構分析WebORMExpress
- HTML-5-頁面結構分析HTML
- Redis 字典結構實現分析BTRedis
- C語言結構體大小分析C語言結構體
- VFS檔案系統結構分析
- 【軟考】--結構化分析設計
- X公司人力資源結構分析
- 【頂級結構】CSGO經典爆破模式地圖的A區結構分析Go模式地圖
- 資料結構與演算法分析——連結串列資料結構演算法
- 荒野亂鬥Brawl Stars 遊戲結構分析遊戲
- elastic-job-lite 資料結構分析AST資料結構
- 輕量級 Web 框架 Gin 結構分析Web框架
- 前端資料結構---複雜度分析前端資料結構複雜度
- JAVA常用資料結構及原理分析Java資料結構
- 玩法設計的結構化分析思路
- INODE結構二進位制頁分析