




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
nettynetty是啥netty是jboss下的是開(kāi)源項(xiàng)目。一個(gè)封裝Socket的jar??梢钥焖匍_(kāi)發(fā)高性能,高可靠的網(wǎng)絡(luò)服務(wù)器與客戶(hù)端程序。與apache下的mina是同一個(gè)作者(TrustinLee),并且是優(yōu)化版。netty的優(yōu)點(diǎn)1.開(kāi)發(fā)簡(jiǎn)單,完整的Doc和用戶(hù)樣例,適用于不同的協(xié)議。2.基于靈活,可擴(kuò)展的事件驅(qū)動(dòng)模型。3.可靠soket支持,高度可定制的線(xiàn)程模型。4.更好的吞吐量,低延遲,節(jié)省資源,內(nèi)部?jī)?yōu)化成熟,減少不必要的內(nèi)存拷貝5.能與android環(huán)境運(yùn)行良好。6.完整的SSL/TLS和STARTTLS的支持Netty整體架構(gòu)
Netty組件
ChannelFactoryBossWorkerChannelChannelEventPipelineChannelContextHandlerSink
Server端核心類(lèi)NioServerSocketChannelFactoryNioServerBossPool
NioWorkerPoolNioServerBossNioWorkerNioServerSocketChannelNioAcceptedSocketChannelDefaultChannelPipelineNioServerSocketPipelineSinkChannels
ChannelFactoryChannel工廠(chǎng),很重要的類(lèi)保存啟動(dòng)的相關(guān)參數(shù)
NioServerSocketChannelFactoryNioClientSocketChannelFactoryNioDatagramChannelFactory
這是Nio的,還有Oio和Local的
SelectorPool
Selector的線(xiàn)程池
NioServerBossPool默認(rèn)線(xiàn)程數(shù):1NioClientBossPool
1NioWorkerPool
2*ProcessorNioDatagramWorkerPool
Selector
選擇器,很核心的組件
NioServerBossNioClientBossNioWorkerNioDatagramWorker
Channel
通道
NioServerSocketChannelNioClientSocketChannelNioAcceptedSocketChannelNioDatagramChannel
Sink負(fù)責(zé)和底層的交互如bind,Write,Close等
NioServerSocketPipelineSinkNioClientSocketPipelineSinkNioDatagramPipelineSink
Pipeline負(fù)責(zé)維護(hù)所有的Handler
ChannelContext一個(gè)Channel一個(gè),是Handler和Pipeline的中間件
Handler對(duì)Channel事件的處理器
ChannelPipeline
優(yōu)秀的設(shè)計(jì)----事件驅(qū)動(dòng)
優(yōu)秀的設(shè)計(jì)----線(xiàn)程模型
案例Server端:package;import;import.*;importty.channel.socket.nio.NioServerSocketChannelFactory;import;import;import;import;/***GodBlessYou!*Author:Fangniude*Date:2013-07-15*/publicclassNettyServer{publicstaticvoidmain(String[]args){ServerBootstrapbootstrap=newServerBootstrap(newNioServerSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool()));//Setupthedefaulteventpipeline.bootstrap.setPipelineFactory(newChannelPipelineFactory(){@OverridepublicChannelPipelinegetPipeline()throwsException{returnChannels.pipeline(newStringDecoder(),newStringEncoder(),newServerHandler());}});//Bindandstarttoacceptincomingconnections.Channelbind=bootstrap.bind(newInetSocketAddress(8000));("Server已經(jīng)啟動(dòng),監(jiān)聽(tīng)端口:"+bind.getLocalAddress()+",等待客戶(hù)端注冊(cè)。。。");}privatestaticclassServerHandlerextendsSimpleChannelHandler{@OverridepublicvoidmessageReceived(ChannelHandlerContextctx,MessageEvente)throwsException{if(e.getMessage()instanceofString){Stringmessage=(String)e.getMessage();("Client發(fā)來(lái):"+message);e.getChannel().write("Server已收到剛發(fā)送的:"+message);("\n等待客戶(hù)端輸入。。。");}super.messageReceived(ctx,e);}@OverridepublicvoidexceptionCaught(ChannelHandlerContextctx,ExceptionEvente)throwsException{super.exceptionCaught(ctx,e);}@OverridepublicvoidchannelConnected(ChannelHandlerContextctx,ChannelStateEvente)throwsException{("有一個(gè)客戶(hù)端注冊(cè)上來(lái)了。。。");("Client:"+e.getChannel().getRemoteAddress());("Server:"+e.getChannel().getLocalAddress());("\n等待客戶(hù)端輸入。。。");super.channelConnected(ctx,e);}}}客戶(hù)端:package;import;import.*;importty.channel.socket.nio.NioClientSocketChannelFactory;import;import;import;import;import;import;/***GodBlessYou!*Author:Fangniude*Date:2013-07-15*/publicclassNettyClient{publicstaticvoidmain(String[]args){//Configuretheclient.ClientBootstrapbootstrap=newClientBootstrap(newNioClientSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool()));//Setupthedefaulteventpipeline.bootstrap.setPipelineFactory(newChannelPipelineFactory(){@OverridepublicChannelPipelinegetPipeline()throwsException{returnChannels.pipeline(newStringDecoder(),newStringEncoder(),newClientHandler());}});//Starttheconnectionattempt.ChannelFuturefuture=bootstrap.connect(newInetSocketAddress("localhost",8000));//Waituntiltheconnectionisclosedortheconnectionattemptfails.future.getChannel().getCloseFuture().awaitUninterruptibly();//Shutdownthreadpoolstoexit.bootstrap.releaseExternalResources();}privatestaticclassClientHandlerextendsSimpleChannelHandler{privateBufferedReadersin=newBufferedReader(newInputStreamReader(System.in));@OverridepublicvoidmessageReceived(ChannelHandlerContextctx,MessageEvente)throwsException{if(e.getMessage()instanceofString){Stringmessage=(String)e.getMessage();(message);e.getChannel().write(sin.readLine());("\n等待客戶(hù)端輸入。。。");}super.messageReceived(ctx,e);}@Overridepu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度銷(xiāo)售渠道合作伙伴保密協(xié)議
- 2025年度電子商務(wù)平臺(tái)用工合作框架協(xié)議
- 2025年中儲(chǔ)糧集團(tuán)河南分公司招聘(114人)筆試參考題庫(kù)附帶答案詳解
- 知識(shí)產(chǎn)權(quán)國(guó)際化保護(hù)的挑戰(zhàn)與機(jī)遇
- 2025至2030年中國(guó)電動(dòng)車(chē)用高性能牽引電機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)電力紅外加熱系統(tǒng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 社交媒體與電商融合的商業(yè)模式探討
- 2025至2030年中國(guó)環(huán)氧樹(shù)脂鉆石膠數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 政府征收資產(chǎn)合同范本
- 科技引領(lǐng)綠色灌裝機(jī)技術(shù)的創(chuàng)新與發(fā)展
- 《榜樣9》觀(guān)后感心得體會(huì)四
- 沈陽(yáng)市地圖課件
- EMS能源管理系統(tǒng)V1.4.0用戶(hù)需求說(shuō)明書(shū)V1.0-20160916
- 伯利茲城大藍(lán)洞
- 物權(quán)法習(xí)題集
- 《工業(yè)機(jī)器人現(xiàn)場(chǎng)編程》課件-任務(wù)3.1 涂膠機(jī)器人工作站工程現(xiàn)場(chǎng)
- 實(shí)訓(xùn)4瀝青路面滲水試驗(yàn)
- 專(zhuān)業(yè)勞務(wù)派遣服務(wù)行業(yè)可行性分析報(bào)告
- 金屬非金屬礦山安全生產(chǎn)法規(guī)
- 《商務(wù)溝通-策略、方法與案例》課件 第五章 網(wǎng)絡(luò)溝通
- 市場(chǎng)調(diào)查 第三版 課件全套 夏學(xué)文 單元1-8 市場(chǎng)調(diào)查認(rèn)知 - 市場(chǎng)調(diào)查報(bào)告的撰寫(xiě)與評(píng)估
評(píng)論
0/150
提交評(píng)論