我是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