(原)

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

以下例子逻辑:

如果客户端连上服务端,服务端控制台就显示,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地址

 

相关文章:

  • 2022-12-23
  • 2021-12-06
  • 2021-05-17
  • 2021-05-21
  • 2021-11-15
  • 2021-05-30
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-02
  • 2022-01-01
  • 2021-06-06
  • 2022-12-23
  • 2021-06-13
  • 2021-05-30
  • 2021-10-22
相关资源
相似解决方案