Netty

Netty是一款网络应用开发框架,可以帮助用户开发高能的协议或者是网络应用程序,直接将软件部署到开发平台就可以配置服务通讯协议方式,可以设置请求方式,可以设置I/O通讯规则,可以配置异步事件处理方案,让用户在配置TCP通讯和配置处理异步事件规则的时候更方便;Netty功能丰富,可以处理多线程请求数据,可以配置多种数据传输通信方案,可以快速设置服务端的数据处理功能和通讯功能,帮助用户快速和构建NIO客户端的功能,提升整体处理数据的能!

相关推荐 软件介绍 下载地址
Netty官方版v1.3 Ney是一款网络应用开发框架,可以帮助用户开发高能的协议或者是网络应用程序,直接将软件部署到开发平台就可以配置服务通讯协议方式,可以设置请求方式,可以设置I/O通讯规则,可以配置异步事件处理方案,让用户在配置TCP通讯和配置处理异步事件规则的时候更方便;… 点击查看
PHPOK内容管理系统官方版v5.7 PHPOK内容管理系统是一款网站后台系统,可以通过这款软件帮助企业管理自己的网站,提供丰富的内容编辑,可以直接在软件编辑文章,发布企业相关的推广文章或者是新闻资讯,提供图像添加功能,在软件后台设计网站主页上显示的图像效果,添加播图像和广告图像,提供后… 点击查看
Hasor官方版v4.2.2 Has提供软件开发功能,可以借助该框架快速部署应用程序,为用户提供更专业的应用程序部署方案,软件主要提供lc/Ap容器框架、Web开发框架、JD数据库访问框架、DaaQL聚合查询引擎、RSF分布式RPC框架、CsleCLI框架、Spg整合框架,无论是构建小型的应用程序… 点击查看

Netty软件功能

Netty是 一个异步事件驱动的网络应用程序框架,

用于快速开发可的高能协议和客户端。

Netty是一个NIO客户端框架,可快速轻松地开发网络应用程序,例如协议和客户端。它极大地简化和简化了网络编程,例如TCP和UDP套接字。

“快速简便”并不意味着最终的应用程序将遭受可或能问题的困扰。Netty经过精心设计,结合了许多协议(例如FTP,TP,HTTP以及各种基于二进制和文本的旧式协议)的实施经验。结果,Netty成功地找到了一种无需妥协即可轻松实现开发,能,稳定和灵活的方法。

设计

适用于各种传输类型的统一API-阻塞和非阻塞套接字

基于灵活且可扩展的事件模型,可将关注点明确分离

高度可定制的线程模型-单线程,一个或多个线程池,例如SEDA

真正的无连接数据报套接字支持(从3.1开始)

Netty软件特色

1、便于使用

记录良好的Javadoc,用户指南和示例

没有其他依赖关系,JDK 5(Netty 3.x)或6(Netty 4.x)就足够了

注意:某些组件(例如HTTP / 2)可能有更多要求。

2、能

更高的吞吐量,更低的延迟

减少资源消耗

减少不必要的内存复制

3、安全

完整的SSL / TLS和StartTLS支持

Netty使用说明

编写丢弃

世界上最简单的协议不是“ Hello,World!”。但是DISCARD。这是一个协议,它丢弃任何收到的数据而没有任何响应。

要实现该DISCARD协议,您唯一需要做的就是忽略所有接收到的数据。让我们直接从处理程序实现开始,该实现处理Netty生成的I / O事件。

1、DiscardServerHandler扩展ChannelInboundHandlerAdapter,这是的实现ChannelInboundHandler。ChannelInboundHandler提供了可以覆盖的各种事件处理程序方法。现在,仅扩展ChannelInboundHandlerAdapter而不是自己实现处理程序接口就足够了。

2、我们在channelRead这里重写事件处理程序方法。每当从客户端接收到新数据时,就使用接收到的消息来调用此方法。在此示例中,接收到的消息的类型为ByteBuf。

3、为了实现DISCARD协议,处理程序必须忽略收到的消息。ByteBuf是一个引用计数对象,必须通过该release方法显式释放。请记住,释放任何传递给处理程序的引用计数对象是处理程序的责任。通常,channelRead处理程序方法的实现如下:

4、该exceptionCght事件处理方法被调用,可抛出异常时被提出的Netty由于I / O错误或由处理器实现,由于在处理事件引发的异常。在大多数情况下,应该记录捕获的异常,并在此处关闭其关联的通道,尽管此方法的实现可能会有所不同,具体取决于您要处理特殊情况时要采取的措施。例如,您可能想在关闭连接之前发送带有错误代码的响应消息。

到现在为止还挺好。我们已经实现了DISCARD的前半部分。现在剩下的就是编写使用main来启动的方法DiscardServerHandler。

5、查看接收到的数据

现在,我们已经编写了第一台,我们需要测试它是否确实有效。测试它的最简单方法是使用telnet命令。例如,您可以telnet localhost 8080在命令行中输入并输入一些内容。

但是,我们可以说工作正常吗?我们真的不知道这是因为它是一个废弃。您根本不会得到任何回应。为了证明它确实有效,让我们修改以打印收到的内容。

我们已经知道,channelRead每当收到数据时都会调用该方法。让我们将一些代码放入channelRead方法中DiscardServerHandler:

这个低效的循环实际上可以简化为: .out.pntln(in.toStng(io.netty.util.CharsetUtil.US_ASCII))

或者,您可以在in.release这里进行。

如果再次运行telnet命令,您将看到打印收到的内容。

丢弃的完整源代码位于io.netty.example.discard分发包中。

上一篇 2023-01-31

相关推荐

  • Netty

    Netty是一款网络应用开发框架,可以帮助用户开发高能的协议或者是网络应用程序,直接将软件部署到开发平台就可以配置服务通讯协议方式,可以设置请求方式,可以设置I/O通讯规则,可...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)