java – netty 4.x中ServerBootstrap.option()和ServerBootstrap.childOption()之间的区别是什么
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – netty 4.x中ServerBootstrap.option()和ServerBootstrap.childOption()之间的区别是什么,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2237字,纯文字阅读大概需要4分钟。
内容图文
根据doc New and noteworthy in 4.0,netty4提供了一个新的bootstrap API,doc提供了以下代码示例:
public static void main(String[] args) throws Exception {
// Configure the server.
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 100)
.localAddress(8080)
.childOption(ChannelOption.TCP_NODELAY, true)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(handler1, handler2, ...);
}
});
// Start the server.
ChannelFuture f = b.bind().sync();
// Wait until the server socket is closed.
f.channel().closeFuture().sync();
} finally {
// Shut down all event loops to terminate all threads.
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
// Wait until all threads are terminated.
bossGroup.terminationFuture().sync();
workerGroup.terminationFuture().sync();
}
}
代码使用ServerBootStrap.option设置ChannelOption.SO_BACKLOG,然后使用ServerBootStrap.childOption设置ChannelOption.TCP_NODELAY.
ServerBootStrap.option和ServerBootStrap.childOption有什么区别?我怎么知道哪个选项应该是一个选项,哪个应该是childOption?
解决方法:
What is the difference between ServerBootStrap.option and
ServerBootStrap.childOption?
我们使用ServerBootStrap.option设置的参数适用于新创建的ServerChannel的ChannelConfig,即侦听和接受客户端连接的服务器套接字.调用bind()或connect()方法时,将在服务器通道上设置这些选项.此通道是每个服务器一个.
ServerBootStrap.childOption适用于一个channelChannel接受客户端连接后创建的channelConfig.此通道是每个客户端(或每个客户端套接字).
因此,ServerBootStrap.option参数适用于正在侦听连接的服务器套接字(服务器通道),ServerBootStrap.childOption参数适用于在服务器套接字接受连接后创建的套接字.
同样可以扩展到ServerBootstrap类中的attr vs childAttr和handler vs childHandler方法.
How could I know which option should be an option and which should be
a childOption ?
支持哪种ChannelOptions取决于我们使用的渠道类型.
您可以参考您正在使用的ChannelConfig的API文档. http://netty.io/4.0/api/io/netty/channel/ChannelConfig.html及其子类.您应该为每个ChannelConfig找到“可用选项”部分.
内容总结
以上是互联网集市为您收集整理的java – netty 4.x中ServerBootstrap.option()和ServerBootstrap.childOption()之间的区别是什么全部内容,希望文章能够帮你解决java – netty 4.x中ServerBootstrap.option()和ServerBootstrap.childOption()之间的区别是什么所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。