第一款Netty应用程序-Netty笔记(二)

编写服务器

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

  • 至少一个 ChannelHandler ,该组件实现了服务器对从客户端接收的数据的处理,即它的业务逻辑。
  • 引导,这是配置服务器的启动代码。至少,它会将服务器绑定到它要监听的连接请求的端口上。

我们编写一款最简单的应用程序,接收到客户端的消息,并把消息发送给客户端。因为我们的应用程序会响应传入的消息,所以它需要实现 ChannelInboundHandler 接口,用于来定义响应入站(inbound)事件的方法。这个简单的应用程序只需要用到少量的这些方法,所以直接继承 ChannelInboundHandlerAdapter 类也就足够了,它提供了 ChannelInboundHandler 的默认实现。

服务器的 ChannelHandler 组件实现:

引导服务器的过程涉及:

  • 绑定到服务器将在其上监听并接受传入的连接请求的端口。
  • 配置 Channel ,以及将有关的入站消息通知给 ChannelHandler 实例。

引导服务器:

编写客户端

如同服务器,客户端将拥有一个用来处理数据的 ChannelInboundHandler ,在我们这个应用程序场景下,我们可以直接继承 SimpleChannelInboundHander 类即可处理所有需要的任务。

客户端的 ChannelHandler 组件实现:

引导客户端:

测试

先启动服务器,然后启动客户端。结果服务器接收到客户端发送的信息,打印信息并将信息返回给客户端。客户端接收到服务器返回的信息,打印信息并退出。

第一款Netty应用程序-Netty笔记(二)
服务器日志

第一款Netty应用程序-Netty笔记(二)
客户端日志
    A+
发布日期:2019年04月17日  所属分类:Java
标签:
六阿哥

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: