多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > Apache Mina開(kāi)發(fā)手冊(cè)之三

Apache Mina開(kāi)發(fā)手冊(cè)之三

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-10-04 08:00:01 閱讀次數(shù):4041次

Apache Mina開(kāi)發(fā)手冊(cè)之三

作者:chszs,轉(zhuǎn)載需注明。博客主頁(yè):http://blog.csdn.net/chszs

2、Mina服務(wù)器的架構(gòu)

Mina服務(wù)器的架構(gòu)圖如下所示:


1)IOAcceptor即I/O接收器,負(fù)責(zé)監(jiān)聽(tīng)網(wǎng)絡(luò)連接和發(fā)過(guò)來(lái)的數(shù)據(jù)包。
2)對(duì)于任一新連接,會(huì)創(chuàng)建一個(gè)新會(huì)話,隨后所有從該IP地址:端口發(fā)送過(guò)來(lái)的請(qǐng)求都會(huì)由該會(huì)話進(jìn)行處理。
3)會(huì)話接收到的所有包,都會(huì)通過(guò)整個(gè)過(guò)濾器鏈的處理。過(guò)濾器可用于修改包的內(nèi)容(比如轉(zhuǎn)換對(duì)象,添加/刪除信息等),把原始的字節(jié)轉(zhuǎn)換成高級(jí)對(duì)象,反之亦然,以及包編解碼器PacketEncoder和PacketDecoder等都是相當(dāng)有用的。
4)最后包通過(guò)IOHandler句柄處理或轉(zhuǎn)換,以滿(mǎn)足業(yè)務(wù)的需求。

3、基于Mina的客戶(hù)端架構(gòu)

Mina客戶(hù)端需要連接到服務(wù)器,發(fā)送消息并處理響應(yīng),它的架構(gòu)圖如下所示:


1)客戶(hù)端首先創(chuàng)建IOConnector連接器(Mina為Socket連接構(gòu)建的),啟動(dòng)時(shí)與服務(wù)器綁定。
2)一旦連接建立,會(huì)創(chuàng)建會(huì)話,并與連接相關(guān)聯(lián)。
3)應(yīng)用程序或客戶(hù)端向會(huì)話寫(xiě)入數(shù)據(jù),使得數(shù)據(jù)被發(fā)送到服務(wù)器,而后通過(guò)過(guò)濾器鏈。
4)從服務(wù)器收到的響應(yīng)或消息也會(huì)遍歷整個(gè)過(guò)濾器鏈,到達(dá)IOHandler句柄,進(jìn)行處理。

六、創(chuàng)建Mina客戶(hù)端

下面我們編寫(xiě)一個(gè)求和運(yùn)算的客戶(hù)端為例。

可見(jiàn),要構(gòu)建Mina客戶(hù)端,我們需要完成以下步驟:
1)創(chuàng)建連接器
2)創(chuàng)建過(guò)濾器鏈
3)創(chuàng)建IOHandler句柄,并添加到連接器
4)綁定到服務(wù)器

下面詳細(xì)說(shuō)明。

1、創(chuàng)建連接器

NioSocketConnector connector = new NioSocketConnector();

2、創(chuàng)建過(guò)濾器鏈
if(USE_CUSTOM_CODEC){ connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new SumUpProtocolCodecFactory(false))); } else{ connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new ObjectSerializationCodecFactory())); }

3、創(chuàng)建IOHandler句柄
connector.setHandler(new ClientSessionHandler(values));

4、綁定到服務(wù)器
IoSession session; for (;;) { try { ConnectFuture future = connector.connect(new InetSocketAddress(HOSTNAME, PORT)); future.awaitUninterruptibly(); session = future.getSession(); break; } catch (RuntimeIoException e) { System.err.println("Failed to connect."); e.printStackTrace(); Thread.sleep(5000); } }

我們連接到服務(wù)器,由于連接是異步任務(wù),故我們使用ConnectFuture類(lèi),它可以知道連接什么時(shí)候完成。一旦連接完成了,我們就可以獲得相關(guān)的IoSession會(huì)話。

要發(fā)送消息到服務(wù)器,我們必須向會(huì)話寫(xiě)入消息數(shù)據(jù)。

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久精品这里是免费国产 | 91精品乱码一区二区三区 | 国语性猛交xxxx乱大交 | 黑人和黑人激情一级毛片 | 欧美一级高清在线观看 | 日韩一级欧美一级毛片在 | 亚洲性色永久网址 | 中文字幕一区二区三区久久网站 | 永久免费视频网站在线观看 | 免费看h视频 | 欧美精品在线免费观看 | 女性一级全黄生活片在线播放 | 亚洲欧美在线不卡 | 久久在精品线影院精品国产 | 日本三级理论片 | 亚洲一区二区三区精品视频 | 日韩麻豆 | 亚洲欧洲一区 | 亚洲国产精品久久久久久网站 | 久久综合亚洲 | 无人区乱码1区2区3区mv | 亚洲精品一区二区三区在线播放 | 中文字幕在第10页线观看 | 精品卡通动漫在线观看视频一区 | 亚洲人成影网站~色 | 欧美性猛交xxxxbbb | 中文字幕第页 | 亚洲一区二区三区四区 | 亚洲一区 中文字幕 久久 | 亚洲 欧美 校园 | 福利久久| 亚洲 欧美 日韩 综合 | 久久精品免费i 国产 | 久草在线观看福利视频 | 成人在色线视频在线观看免费大全 | 黑色丝袜高跟国产在线91 | 日本爱爱视频 | 国产一区二区三区在线观看精品 | 久久国产精品老人性 | 在线五月婷婷 | 美女视频一区二区三区 |