我是Netty的新手。有一件事讓我感到困惑的是,ServerBootstrap有兩個方法:從AbstractBootstrap繼承的handler(ChannelHandler c)和基於javadoc的childHandler(ChannelHandler c),兩者似乎都在做同樣的事情。那麼,這是真的嗎?這兩種方法有什麼不同嗎?ServerBootstrap的handler(ChannelHandler c)和childHandler(ChannelHandler c)有什麼區別?
2
A
回答
5
在編寫基於Netty的客戶端時,使用AbstractBootstrap中定義的handler
。
當編寫基於netty的服務器,可以在多個可接受的通道上工作時,使用ServerBootstrap中定義的childHandler
,使用一個子處理程序來處理接受的通道的I/O和數據。
0
Handler方法將在ServerBootstrap初始化時執行,但childHandler
將在連接完成時執行。
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.handler(new LoggingHandler(LogLevel.INFO))
.childHandler(new ServerInitializer(this.hander));
當你啓動服務器,你可以看到如下的記錄:
2017-09-20 08:44:34,034 INFO nioEventLoopGroup-2-1 LoggingHandler:150 [id: 0x920c9647, L:/0:0:0:0:0:0:0:0:6030] ACTIVE
2017-09-20 08:44:34,034 INFO nioEventLoopGroup-3-1 LoggingHandler:150 [id: 0x048bb39e, L:/0:0:0:0:0:0:0:0:6031] ACTIVE
相關問題
- 1. 什麼區別\\。\ C:和\\。\ C:\
- 2. \ c和\\ c有什麼區別?
- 3. Visual C++和C++有什麼區別?
- 4. printf中%c和%C有什麼區別?
- 5. C++和C++ CLI有什麼區別
- 6. 託管C++和C#有什麼區別?
- 7. Managed C++和C++/CLI有什麼區別?
- 8. &c和* c聲明有什麼區別?
- 9. Handler vs runOnUiThread有什麼區別?
- 10. 在Netty ChannelHandler中保持狀態
- 11. C#.net和Visual Basic.net有什麼區別?
- 12. GLSL和c有什麼區別?
- 13. Objective-C和Cocoa有什麼區別?
- 14. SqlCeConnection和SqlConnection C#有什麼區別?
- 15. 'b'和'c'有什麼區別?
- 16. C++中#import和#include有什麼區別?
- 17. Ctrl + C和Ctrl + [有什麼區別?
- 18. C#Thread.Sleep()和threadreference.Join()有什麼區別?
- 19. C中#define和'='有什麼區別?
- 20. C#和.NET有什麼區別?
- 21. C#中CLR和DLR有什麼區別?
- 22. c#中的AddressOf和C++中的指針有什麼區別
- 23. C和Objective-C:使用Float64和long有什麼區別?
- 24. c/C++中的VARNAME_T和VARNAME_P有什麼區別
- 25. 什麼是ASP.NET和C#的區別?
- 26. Handler(MessageQueue)和AsyncTask(SERIAL_EXECUTOR)有什麼區別,性能明智嗎?
- 27. C++ 0x概念和c#約束有什麼區別?
- 28. C/C++中`new`和`new()`結構有什麼區別?
- 29. Visual C++ 6.0和Visual C++ 2008有什麼區別?
- 30. C++ Builder 6和C++ Builder Seatle For IntToStr方法有什麼區別?
你會這麼好心地闡明你的答案嗎? – raffian 2014-12-23 01:55:52