Netty 4多个客户端

我需要让客户端能够建立很多连接。 我使用Netty 4.0。 不幸的是,所有现有示例都没有显示如何创建大量连接。

public class TelnetClient { private Bootstrap b; public TelnetClient() { b = new Bootstrap(); } public void connect(String host, int port) throws Exception { try { b.group(new NioEventLoopGroup()).channel(NioSocketChannel.class).remoteAddress(host, port).handler(new TelnetClientInitializer()); Channel ch = b.connect().sync().channel(); ChannelFuture lastWriteFuture = null; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); for (;;) { String line = in.readLine(); if (line == null) break; lastWriteFuture = ch.write(line + "\r\n"); if (line.toLowerCase().equals("bye")) { ch.closeFuture().sync(); break; } } if (lastWriteFuture != null) lastWriteFuture.sync(); } finally { b.shutdown(); } } public static void main(String[] args) throws Exception { TelnetClient tc = new TelnetClient(); tc.connect("127.0.0.1", 1048); tc.connect("192.168.1.123", 1050); //... } } 

这是正确的决定吗? 还是会更好?

是的它几乎是正确的..你必须改变的唯一事情是在每个连接上创建NioEventLoopGroup。

NioEventLoopGroup实例很昂贵,因此应该共享它们。 通过每次将相同的实例传递给Bootstrap.group(…)来创建一个实例并共享它。