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

政务服务网站建设文档网站怎么做单页

政务服务网站建设文档,网站怎么做单页,国内主流网站开发技术,医院网站解决方案什么是netty ​ Netty是一个基于Java NIO的异步事件驱动网络应用程序框架。它提供了简单易用的API#xff0c;用于快速开发可维护的高性能网络应用程序。Netty的设计目标是提供一种高度可扩展的、高性能的网络应用程序框架#xff0c;使得开发人员能够轻松地构建各种类型的网…什么是netty ​ Netty是一个基于Java NIO的异步事件驱动网络应用程序框架。它提供了简单易用的API用于快速开发可维护的高性能网络应用程序。Netty的设计目标是提供一种高度可扩展的、高性能的网络应用程序框架使得开发人员能够轻松地构建各种类型的网络应用包括但不限于服务器通信、实时通信、游戏服务器等。 ​ Netty的核心是基于Channel、EventLoop和Handler的模型。它采用了事件驱动的方式通过Handler对事件进行处理实现了高效的并发处理和网络通信。Netty提供了丰富的编解码器和处理器使得开发人员能够轻松地构建复杂的网络应用逻辑。同时Netty还提供了高度可定制化的API使得开发人员能够根据具体需求进行灵活的定制和扩展。 ​ 由于其优秀的性能和灵活的设计Netty被广泛应用于各种类型的网络应用开发包括高性能的服务器通信、实时通信、大规模并发处理等领域。Netty已经成为Java领域中最受欢迎的网络应用程序框架之一受到了广泛的认可和应用. 绿色的部分Core核心模块包括零拷贝、API库、可扩展的事件模型。 橙色部分Protocol Support协议支持包括Http协议、webSocket、SSL(安全套接字协议)、谷歌Protobuf协议、zlib/gzip压缩与解压缩、Large File Transfer大文件传输等等。 红色的部分Transport Services传输服务包括Socket、Datagram、Http Tunnel等等。 以上可看出Netty的功能、协议、传输方式都比较全比较强大。 netty-demo 服务端 public class MyServer {public static void main(String[] args) throws Exception {//创建两个线程组 boosGroup、workerGroupEventLoopGroup bossGroup new NioEventLoopGroup();EventLoopGroup workerGroup new NioEventLoopGroup();try {//创建服务端的启动对象设置参数ServerBootstrap bootstrap new ServerBootstrap();//设置两个线程组boosGroup和workerGroupbootstrap.group(bossGroup, workerGroup)//设置服务端通道实现类型 .channel(NioServerSocketChannel.class)//设置线程队列得到连接个数 .option(ChannelOption.SO_BACKLOG, 128)//设置保持活动连接状态 .childOption(ChannelOption.SO_KEEPALIVE, true)//使用匿名内部类的形式初始化通道对象 .childHandler(new ChannelInitializerSocketChannel() {Overrideprotected void initChannel(SocketChannel socketChannel) throws Exception {//给pipeline管道设置处理器socketChannel.pipeline().addLast(new MyServerHandler());}});//给workerGroup的EventLoop对应的管道设置处理器System.out.println(java技术爱好者的服务端已经准备就绪...);//绑定端口号启动服务端ChannelFuture channelFuture bootstrap.bind(6666).sync();//对关闭通道进行监听channelFuture.channel().closeFuture().sync();} finally {bossGroup.shutdownGracefully();workerGroup.shutdownGracefully();}} }服务端处理器 public class MyServerHandler extends ChannelInboundHandlerAdapter {Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {//获取客户端发送过来的消息ByteBuf byteBuf (ByteBuf) msg;System.out.println(收到客户端 ctx.channel().remoteAddress() 发送的消息 byteBuf.toString(CharsetUtil.UTF_8));}Overridepublic void channelReadComplete(ChannelHandlerContext ctx) throws Exception {//发送消息给客户端ctx.writeAndFlush(Unpooled.copiedBuffer(服务端已收到消息并给你发送一个问号?, CharsetUtil.UTF_8));}Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {//发生异常关闭通道ctx.close();} }客户端 public class MyClient {public static void main(String[] args) throws Exception {NioEventLoopGroup eventExecutors new NioEventLoopGroup();try {//创建bootstrap对象配置参数Bootstrap bootstrap new Bootstrap();//设置线程组bootstrap.group(eventExecutors)//设置客户端的通道实现类型 .channel(NioSocketChannel.class)//使用匿名内部类初始化通道.handler(new ChannelInitializerSocketChannel() {Overrideprotected void initChannel(SocketChannel ch) throws Exception {//添加客户端通道的处理器ch.pipeline().addLast(new MyClientHandler());}});System.out.println(客户端准备就绪随时可以起飞~);//连接服务端ChannelFuture channelFuture bootstrap.connect(127.0.0.1, 6666).sync();//对通道关闭进行监听channelFuture.channel().closeFuture().sync();} finally {//关闭线程组eventExecutors.shutdownGracefully();}} }客户端处理器 ublic class MyClientHandler extends ChannelInboundHandlerAdapter {Overridepublic void channelActive(ChannelHandlerContext ctx) throws Exception {//发送消息到服务端ctx.writeAndFlush(Unpooled.copiedBuffer(歪比巴卜~茉莉~Are you good~马来西亚~, CharsetUtil.UTF_8));}Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {//接收服务端发送过来的消息ByteBuf byteBuf (ByteBuf) msg;System.out.println(收到服务端 ctx.channel().remoteAddress() 的消息 byteBuf.toString(CharsetUtil.UTF_8));} }Netty组件作用简介 EventLoop和EventLoopGroup Netty中的EventLoop是处理I/O事件的线程负责处理连接、读写等操作。每个Channel都会被注册到一个EventLoop上由该EventLoop负责处理该Channel上的所有I/O事件。 而EventLoopGroup则是一组EventLoop的抽象它管理着一组EventLoop并负责为每个新创建的Channel分配一个EventLoop。EventLoopGroup可以理解为是一组线程池用于管理和调度EventLoop的执行。 一个EventLoopGroup 包含一个或者多个EventLoop一个EventLoop 在它的生命周期内只和一个Thread 绑定所有由EventLoop 处理的I/O 事件都将在它专有的Thread 上被处理一个Channel 在它的生命周期内只注册于一个EventLoop一个EventLoop 可能会被分配给一个或多个Channel。 Channel 为Netty 网络操作抽象类EventLoop 主要是为Channel 处理 I/O 操作两者配合参与 I/O 操作。当一个连接到达时Netty 就会注册一个 Channel然后从 EventLoopGroup 中分配一个 EventLoop 绑定到这个Channel上在该Channel的整个生命周期中都是有这个绑定的 EventLoop 来服务的 。 channel Channel是 Java NIO 的一个基本构造。可以看作是传入或传出数据的载体。因此它可以被打开或关闭连接或者断开连接。 Bootstrap与ServerBootStrap Bootstrap和ServerBootStrap是Netty提供的一个创建客户端和服务端启动器的工厂类使用这个工厂类非常便利地创建启动类根据上面的一些例子其实也看得出来能大大地减少了开发的难度。首先看一个类图 可以看出都是继承于AbstractBootStrap抽象类所以大致上的配置方法都相同。 一般来说使用Bootstrap创建启动器的步骤可分为以下几步 ChannelHandler 与 ChannelPipeline ​ Netty的ChannelHandler是用于处理入站和出站事件的组件它可以实现数据的编解码、业务逻辑处理等功能。ChannelHandler可以被添加到ChannelPipeline中用于处理Channel上的各种事件。 而ChannelPipeline则是一系列ChannelHandler的容器它负责管理和调度ChannelHandler的执行顺序。当数据在Channel中流动时会经过ChannelPipeline中的各个ChannelHandler每个ChannelHandler都可以对数据进行处理、转换或者传递给下一个ChannelHandler。 通过ChannelHandler和ChannelPipeline的组合使用Netty实现了高度灵活的事件处理机制使得开发人员能够轻松地构建复杂的网络应用逻辑。同时ChannelPipeline还支持动态地添加、删除和替换ChannelHandler使得网络应用的逻辑处理能够根据需求进行灵活的定制和扩展。
http://www.w-s-a.com/news/726022/

相关文章:

  • 昆明网站设计都需要设计什么网络推广岗位职责和任职要求
  • 国外公司网站模板网站建设公司选择意见书
  • 如何创建一个网站卖东西郑州 网站建设公司
  • 石景山郑州阳网站建设南京网站搜索引擎优化
  • 一个网站需要哪些备案书店网站建设策划书总结
  • 网站建设的重点是什么注册网站空间
  • 网站公司企业宗旨我的网站 dedecms
  • 沧州网站优化做详情图的网站
  • 中国建设银行公积金网站wordpress表单 post
  • 找权重高的网站方法wordpress视频网站上传视频
  • 营销型网站架构师迁移wordpress500错误
  • 做网站还是博客由()承担
  • wordpress 导购站模板中国最新军事新闻直播83军
  • 公众号h5网站开发wordpress文章主图
  • ps怎么艺术字字体设计网站我想自己做网站
  • 北京做机柜空调的网站模板网站和插件
  • 手机购物网站模板wordpress添加分类文档
  • 网站开发知识网上怎么申请个人营业执照
  • 音乐网站建设费用营销策略都有哪些4p
  • 深圳制作网站怎么样wordpress 学习视频
  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本