netty-3.客户端与服务端通信

(原)

第三篇,客户端与服务端通信

以下例子逻辑:

如果客户端连上服务端,服务端控制台就显示,XXX个客户端地址连接上线。

第一个客户端连接成功后,客户端控制台不显示信息,再有其它客户端再连接上线,则其它客户端显示:【服务器】 - XXX 已加入

当客户端发送一条消息给服务端,其它客户端控制台都能收到此消息【服务端】 - xxx msg,同时自己也会收到一条消息,【服务端】 - 【自己】 msg

netty-3.客户端与服务端通信

服务端ChannelInitializer和SimpleChannelInboundHandler实现为:

netty-3.客户端与服务端通信


netty-3.客户端与服务端通信


这里的channelGroup这管道组,在客户端关掉后,服务端会自动调用handlerRemoved方法,channelGroup的remove方法会自动调用,将对应的客户端从channelGroup中移除,所以这里不必显示的移除。

客户端main 和SimpleChannelInboundHandler实现为:

netty-3.客户端与服务端通信

因为客户需要将控制台输入参数发送出去,所以这里用了while死循环

netty-3.客户端与服务端通信

测试结果

先开启服务端,再开启二个客户端,第一个客户端输入hello

服务端:

netty-3.客户端与服务端通信

客户端1:

netty-3.客户端与服务端通信

客户端2:

netty-3.客户端与服务端通信

demo地址

上一篇:Netty入门之客户端与服务端通信(二)


下一篇:Jumpserver堡垒机搭建(脚本自动化)