本文使用netty4.1.16 JDK 1.8 实现简单的群发功能
代码来源于GitHub上的项目,本着学习态度对该代码进行了仔细学习。
客户端代码
package simplechat; import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioSocketChannel; import java.io.BufferedReader; import java.io.InputStreamReader; /** * 简单聊天服务器-客户端 * * @author waylau.com * @date 2015-2-26 */ public class SimpleChatClient { public static void main(String[] args) throws Exception{ new SimpleChatClient("localhost", 2333).run(); } private final String host; private final int port; public SimpleChatClient(String host, int port){ this.host = host; this.port = port; } public void run() throws Exception{ EventLoopGroup group = new NioEventLoopGroup(); try { Bootstrap bootstrap = new Bootstrap() .group(group) .channel(NioSocketChannel.class) .handler(new SimpleChatClientInitializer()); Channel channel = bootstrap.connect(host, port).sync().channel(); //录入信息 BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while(true){ //将录入的信息添加一个尾缀,用与分包和粘包的判断 channel.writeAndFlush(in.readLine() + "\r\n"); } } catch (Exception e) { e.printStackTrace(); } finally { group.shutdownGracefully(); } } }
客户端处理类
package simplechat; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; /** * 客户端 channel * * @author