2015-02-23 132 views
-1

我建立与网状TCP服务器。Netty的多客户端

  • 我想在客户端建立连接(网络约束)
  • 我想从来没有关闭通道(因为我需要通过服务器随时通道写)
  • 我有很多客户。
  • 我开始服务器到一个端口上侦听(例如:9090)

当连接建立,如何网状可以接收其他客户端的新连接? 所有流量路过服务器或网状的端口使用其他端口选择在客户端的连接?

+0

很多“我想”,任何“我想” ...... – HCarrasko 2015-02-24 15:34:33

回答

1

的Netty的服务器接收来自同一IP的连接:您已配置端口。因此,来自客户端的任何新连接都是服务器的相同IP:端口。

这是客户的一个小代码。正如你所看到的,所有的客户端都会运行到同一个主机和端口的连接。

Bootstrap b = new Bootstrap(); 
b.group(group) 
    .channel(NioSocketChannel.class) 
    .option(ChannelOption.TCP_NODELAY, true) 
    .handler(new SecureChatClientInitializer(sslCtx)); 

    // Start the connection attempt. 
    Channel ch = b.connect(HOST, PORT).sync().channel(); 

对于连接的客户端将有一个随机部分和所述服务器将使用已配置(例如[ID的端口:0xb47c8fca,/10.0.1.100:58963 => /10.0.1.20:9090 ])

希望有所帮助。

+0

谢谢您的回答,如果我没有理解好端口通道中真正使用是开放的是客户端的随机端口或服务器的端口? – Euguuu 2015-02-24 08:57:39

+0

在服务器中,所有通信都会通过您确定的端口(例如9090)。在客户端是一个随机端口。 – 2015-02-24 11:16:59