Netty编写第一个服务端与客户端应用程序

服务端

        所有的 Netty 服务器都需要以下两部分

  •         至少有一个 ChannelHandler:该遵纪安实现了服务器对客户端接受的数据的处理逻辑,即业务逻辑
  •         引导(ServerBootStrap):这是配置服务器的启动代码。它必须绑定到它要监听的服务器端口上面

ChannelHandler

        一个ChannelHandler类中至少应该包含以下三个方法:

        channelRead():对于每个传入的消息都要调用

        channelReadComplete():表示读取到了当前批量中的最后一条消息

        exceptionCaught():读取操作期间,出现异常后会被调用

          具体方法和使用类与Netty版本有关系,本次示例代码采用的版本

    <dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>5.0.0.Alpha1</version>
    </dependency>

 
 


引导(ServerBootStrap)

        具体需要做至少两件事:

  •         绑定端口
  •         配置 Channel ,以将有关的入站消息通知给 对应的 ChannelHandler 实例

 

客户端

        所有的 Netty 客户端至少包括

  •         至少有一个 ChannelHandler:该遵纪安实现了服务器对客户端接受的数据的处理逻辑,即业务逻辑
  •         引导(BootStrap):这是配置服务器的启动代码。它必须绑定到它要监听的服务器端口上面

ChannelHandler

        至少包含下面三个方法:

        channelActive():连接建立后将会被调用

        channelRead():读取数据

        exceptionCaught():异常捕获


引导(BootStrap)

        逻辑和服务端基本一致,主要区别点在于不需要绑定到一个一直被监听的端口,而是需要用主机的地址和端口参数来连接远程的地址。


总结

        本章节搭建了一个简单的基于 Netty 的 CS 模式的架构,虽然只是一个简单的应用程序,但是它可以伸缩到支持数千个并发连接——每秒比普通的基于套接字的 java 应用程序处理多得多的消息。

        下一章我们将对 Netty 体系架构进行概述,以为之后深入全面的学习 Netty 打好基础。





猜你喜欢

转载自blog.csdn.net/yhs1296997148/article/details/80375382