欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
mina簡(jiǎn)單介紹

Apache的Mina(Multipurpose Infrastructure Networked Applications)是一個(gè)網(wǎng)絡(luò )應用框架,可以幫助用戶(hù)開(kāi)發(fā)高性能和高擴展性的網(wǎng)絡(luò )應用程序;它提供了一個(gè)抽象的、事件驅動(dòng)的異步API,使Java NIO在各種傳輸協(xié)議(如TCP/IP,UDP/IP協(xié)議等)下快速高效開(kāi)發(fā)。
 


 

 

 Mina的工作流程,也涵蓋了Mina的三個(gè)核心接口:IoService接口,IoFilter接口和IoHandler接口

 

 第一步. 創(chuàng )建服務(wù)對象(客戶(hù)端或服務(wù)端)  ---IoService接口實(shí)現
 第二步. 數據過(guò)濾(編碼解碼、日志等)          ---IOFilter接口實(shí)現
 第三步. 業(yè)務(wù)處理                        ---IoHandler接口實(shí)現

1.IoService接口
作用:IoService是創(chuàng )建服務(wù)的頂層接口,無(wú)論客戶(hù)端還是服務(wù)端,都是從它繼承實(shí)現的。

         IoService接口聲明了服務(wù)端的共有屬性和行為

 IoAcceptor接口繼承了IoService接口,并添加了服務(wù)端特有的接口屬性及方法,比如bind()方法,成為典型的服務(wù)端接口;
 IoConnector接口同樣繼承了IoService接口,并添加了客戶(hù)端特有的接口屬性及方法,比如connect()方法,成為典型的客戶(hù)端接口;

 

 實(shí)現類(lèi)有NioSocketAcceptor(服務(wù)端),NioSocketConnector(客戶(hù)端)

 



 

啟動(dòng)服務(wù)端的時(shí)候 通過(guò)acceptor.getFilterChain()的addLast方法添加IOFilter

通過(guò)acceptor.seHandler添加IoHandler

 服務(wù)端必須指定綁定的端口號

 客戶(hù)端必須指定請求的服務(wù)器地址和端口號

2.IoFilter接口

Mina最主要的工作就是把底層傳輸的字節碼轉換為Java對象,提供給應用程序;或者把應用程序返回的結果轉換為字節碼,交給底層傳輸。這些都是由IoFilter完成的,因此IoFilter是Mina的精髓所在。

IoService實(shí)例會(huì )綁定一個(gè)DefaultIoFilterChainBuilder ---- 過(guò)濾器鏈,我們把自定義的各種過(guò)濾器(IoFilter)自由的插放在這個(gè)過(guò)濾器鏈上了,類(lèi)似于一種可插拔的功能!



 

 

LoggingFilter是根據IoSession的狀態(tài)(創(chuàng )建、開(kāi)啟、發(fā)送、接收、異常等等)來(lái)記錄會(huì )話(huà)的事件信息的!這對我們跟蹤IoSession很有用。當地,也可以自定義logger的日志級別,定義記錄那些狀態(tài)的日志。

 ProtocolCodecFilter是設置編碼解碼。Mina中傳輸的所有二進(jìn)制信息都存放在IoBuffer中,IoBuffer是對Java NIO中ByteBuffer的封裝(Mina2.0以前版本這個(gè)接口也是ByteBuffer),提供了更多操作二進(jìn)制數據,對象的方法,并且存儲空間可以自增長(cháng),用起來(lái)非常方便;簡(jiǎn)單理解,它就是個(gè)可變長(cháng)度的byte數組!

ExecutorFilter 將IO線(xiàn)程與業(yè)務(wù)處理線(xiàn)程分開(kāi),I/O Processor的線(xiàn)程數量由CPU的核數決定,由于業(yè)務(wù)處理部分消耗時(shí)間過(guò)長(cháng),如果和IO線(xiàn)程在一個(gè)里面會(huì )造成阻塞。
ExecutorFilter 缺省使用OrderedThreadPoolExecutor線(xiàn)程池。
需要注意的是這個(gè)線(xiàn)程池,對應同一個(gè)session而言,是順序執行的.

3.IoHandler接口
 IoHandler是Mina實(shí)現其業(yè)務(wù)邏輯的頂級接口;在IoHandler中定義了7個(gè)方法,根據I/O事件來(lái)觸發(fā)對應的方法:
sessionCreated:當一個(gè)新的連接建立時(shí),由I/O processor thread調用;
sessionOpened:當連接打開(kāi)是調用;
messageReceived:當接收了一個(gè)消息時(shí)調用;
messageSent:當一個(gè)消息被(IoSession#write)發(fā)送出去后調用;
sessionIdle:當連接進(jìn)入空閑狀態(tài)時(shí)調用;
sessionClosed:當連接關(guān)閉時(shí)調用;
exceptionCaught:當實(shí)現IoHandler的類(lèi)拋出異常時(shí)調用;
一般情況下,我們最關(guān)心的只有messageReceived方法,接收消息并處理,然后調用IoSession的write方法發(fā)送出消息?。ㄗ⒁猓哼@里接收到的消息都是Java對象,在IoFilter中所有二進(jìn)制數據都被解碼啦?。?br>一般情況下很少有人實(shí)現IoHandler接口,而是繼承它的一個(gè)實(shí)現類(lèi)IoHandlerAdapter,這樣不用覆蓋它的7個(gè)方法,只需要根據具體需求覆蓋其中的幾個(gè)方法就可以!

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Apache Mina(一)
使用 Apache MINA 開(kāi)發(fā)高性能網(wǎng)絡(luò )應用程序
Mina2.0框架源碼剖析(一)
使用 Apache MINA 2 開(kāi)發(fā)網(wǎng)絡(luò )應用
Mina框架學(xué)習筆記(四)
Apache Mina Server 2.0 中文參考手冊
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久