我是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. 如何使用Netty ChannelHandler和gzip?
- 2. 什麼區別\\。\ C:和\\。\ C:\
- 3. \ c和\\ c有什麼區別?
- 4. Visual C++和C++有什麼區別?
- 5. printf中%c和%C有什麼區別?
- 6. C++和C++ CLI有什麼區別
- 7. char [] c和char c []有什麼區別?
- 8. 託管C++和C#有什麼區別?
- 9. Managed C++和C++/CLI有什麼區別?
- 10. c#和visual c#有什麼區別?
- 11. 動態ChannelHandler使用不同的協議
- 12. Handler vs runOnUiThread有什麼區別?
- 13. 在Netty ChannelHandler中保持狀態
- 14. 有什麼區別C#
- 15. Ctrl-C和SIGINT有什麼區別?
- 16. C++中fprintf和vfprintf有什麼區別?
- 17. Objective-C和Cocoa有什麼區別?
- 18. GLSL和c有什麼區別?
- 19. C#.net和Visual Basic.net有什麼區別?
- 20. C#中ArrayList和Hashtable有什麼區別?
- 21. Lua C API:lua_gettop()和-1有什麼區別?
- 22. jni compile cpp和c有什麼區別?
- 23. SqlCeConnection和SqlConnection C#有什麼區別?
- 24. C++中0x和'\ x'有什麼區別?
- 25. 'b'和'c'有什麼區別?
- 26. C和%之間有什麼區別?
- 27. C++中#import和#include有什麼區別?
- 28. Ctrl + C和Ctrl + [有什麼區別?
- 29. Xcode,Objective-C和Cocoa有什麼區別?
- 30. C#中CLR和DLR有什麼區別?
你會這麼好心地闡明你的答案嗎? – raffian 2014-12-23 01:55:52