当前位置: 首页 > news >正文

建设部指定发布招标信息网站seo云优化软件破解版

建设部指定发布招标信息网站,seo云优化软件破解版,微信小程序注册流程,国外网页素材网站为什么会有Netty? NIO 的类库和 API 繁杂#xff0c;使用起来比较麻烦#xff0c;需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。开发工作量和难度都非常大#xff0c;例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异…为什么会有Netty? NIO 的类库和 API 繁杂使用起来比较麻烦需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。开发工作量和难度都非常大例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等。Netty 对 JDK 自带的 NIO 的 API 进行了良好的封装解决了上述问题。此外Netty 拥有高性能、吞吐量更高延迟更低减少资源消耗最小化不必要的内存复制等优点。目前使用的是 Netty 4.x 版本5.x 版本已经废弃Netty 4.x 需要 JDK 6 以上版本支持. Netty示例 引入maven依赖 dependencygroupIdio.netty/groupIdartifactIdnetty-all/artifactIdversion4.1.35.Final/version /dependency服务端代码 public static void main(String[] args) throws Exception{// 创建两个线程组bossGroup和workerGroupNioEventLoopGroup bossGroup new NioEventLoopGroup();NioEventLoopGroup workerGroup new NioEventLoopGroup();try {// 创建服务器端的启动对象ServerBootstrap bootstrap new ServerBootstrap();// 使用链式编程来配置参数bootstrap.group(bossGroup,workerGroup) // 设置两个线程组.channel(NioServerSocketChannel.class) // 使用NioServerSocketChannel作为服务器的通道实现.option(ChannelOption.SO_BACKLOG,1024) // 初始化服务器连接队列大小.childHandler(new ChannelInitializerSocketChannel() { // 创建通道初始化对象设置初始化参数Overrideprotected void initChannel(SocketChannel socketChannel) throws Exception {// 对workerGroup的SocketChannel设置处理器socketChannel.pipeline().addLast(new NettyServerHandler());}});System.out.println(Netty server start...);// 绑定一个端口并且同步ChannelFuture cf bootstrap.bind(9999).sync();// 通过sync方法同步等待通道关闭处理完毕这里会阻塞等待通道关闭完成cf.channel().closeFuture().sync();} finally {bossGroup.shutdownGracefully();workerGroup.shutdownGracefully();}}// 服务端处理器 public class NettyClientHandler extends ChannelInboundHandlerAdapter {/*** 客户端连接服务端后触发*/Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {ByteBuf buf Unpooled.copiedBuffer(Hello Netty Server, CharsetUtil.UTF_8);ctx.writeAndFlush(buf);}/*** 读取服务端发送的数据*/Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf (ByteBuf) msg;System.out.println(收到服务端发送的数据buf.toString(CharsetUtil.UTF_8));System.out.println(服务端地址ctx.channel().remoteAddress());}/*** 异常关闭*/Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {ctx.close();} }// 启动Server服务端 - 输出 Netty server start...客户端代码 public static void main(String[] args) throws Exception{// 客户端事件循环组NioEventLoopGroup group new NioEventLoopGroup();try {// 客户端启动对象Bootstrap bootstrap new Bootstrap();// 设置相关参数bootstrap.group(group) // 设置线程组.channel(NioSocketChannel.class) // 使用NioSocketChannel作为客户端的通道实现.handler(new ChannelInitializerSocketChannel() {Overrideprotected void initChannel(SocketChannel socketChannel) throws Exception {// 加入处理器socketChannel.pipeline().addLast(new NettyClientHandler());}});System.out.println(Netty client start);// 启动客户端去连接服务器端ChannelFuture channelFuture bootstrap.connect(localhost, 9999).sync();// 对关闭通道进行监听channelFuture.channel().closeFuture().sync();} finally {group.shutdownGracefully();}}// 处理器public class NettyClientHandler extends ChannelInboundHandlerAdapter {/*** 客户端连接服务端后触发*/Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {ByteBuf buf Unpooled.copiedBuffer(Hello Netty Server, CharsetUtil.UTF_8);ctx.writeAndFlush(buf);}/*** 读取服务端发送的数据*/Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {ByteBuf buf (ByteBuf) msg;System.out.println(收到服务端发送的数据buf.toString(CharsetUtil.UTF_8));System.out.println(服务端地址ctx.channel().remoteAddress());}/*** 异常关闭*/Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {ctx.close();} } // 启动客户端 - 输出 Netty client start 收到服务端发送的数据ACK 服务端地址localhost/127.0.0.1:9999 // 服务端 - 输出 服务器读取线程:nioEventLoopGroup-3-1 客户端发送的消息是:Hello Netty ServerNetty应用场景 1在互联网行业的分布式系统中,各个节点需要进行远程服务调用,因此需要高性能的RPC框架。Netty作为异步高性能的通信框架通常作为这些 RPC 框架的基础通信组件。 例如阿里分布式服务框架 Dubbo 使用 Dubbo 协议进行节点间通信而 Dubbo 协议默认采用 Netty 作为基础通信组件用于实现各进程节点之间的内部通信。此外Rocketmq 的底层也使用 Netty 作为基础通信组件。2在游戏行业不论是手游服务端还是大型网络游戏,Java 语言的应用越来越广泛。 Netty 作为高性能的基础通信组件提供了 TCP/UDP 和 HTTP 协议栈。3在大数据领域,经典的 Hadoop 的高性能通信和序列化组件 Avro 的 RPC 框架默认采用 Netty 进行跨界点通信。 它Netty Service 基于 Netty 框架进行二次封装实现。
http://www.hkea.cn/news/14474854/

相关文章:

  • 大连公共资源交易平台章丘市网站建设seo
  • wordpress快速建站90设计下载后怎么用
  • 门户网站开发项目的风险自己做报名网站教程
  • 如何做新网站古装衣服店网站建设页面
  • 百度收录网站怎么更改关键词对购物网站建设的建议
  • 网站开发简历 自我评价网站建设模板是什么意思
  • 重庆网站制作一般需要多少钱教师网络培训心得体会
  • 电商运营的网站做网站的企业
  • 徐州网站简介东莞厚街有什么好玩的地方
  • 傻瓜一键自助建站系统wordpress增加登录账户
  • 松原新闻头条网站关键词百度自然排名优化
  • 做网站流量的方法深圳企业网站制作公司介绍
  • 展会网站制作网站架构变迁
  • 怎么看网站开发语言是哪种电商培训机构哪家好
  • 上海做网站比较好的公司有哪些网站管理系统安装 -
  • 建设导航网站wordpress回收站 恢复
  • 做网站还需要兼容ie6吗无锡seo优化
  • 百度站长怎么做网站维护安徽网站建设维护
  • 响应式网站代理动漫制作专业软件
  • 做网站比较专业的有哪些公司网站设计中级
  • 织梦网站怎么做索引地图校园网站建设管理制度
  • 建立传媒公司网站司局网站维护廉政风险建设
  • 网站开发客户挖掘长治长治那有做网站的
  • 全是广告的网站清新太和做网站
  • 推荐几个响应式网站做参考商务信息网官网
  • 网站的备案流程wordpress主题 missoften
  • 龙华做企业网站建立网站需要多少钱
  • 网站联系我们模板大学校园门户网站建设
  • 网站keywords企业发展历程网站
  • 西安做网站报价微信广告服务商平台