Netty channle绑定多个端口区分IP地址和Port端口

Java 01-07 14:03

获取客户端ip和端口

import io.netty.channel.ChannelHandlerContext;

//ChannelHandlerContext chc
InetSocketAddress ipSocket = (InetSocketAddress)chc.channel().remoteAddress();
String clientIp = ipSocket.getAddress().getHostAddress();
log.info("客户端ip地址:{}",clientIp);

获取客户端channel注册的服务端ip和端口

int localPort = socketChannel.localAddress().getPort();
String  localAddress = socketChannel.localAddress().getAddress().getHostAddress();
有些netty版本localAddress()后面没有getPort(),使用分隔来处理
String localAddress = ctx.channel().localAddress().toString();
this.localPort = Integer.valueOf(localAddress.split(":")[1]);
注:这个很有用,可以通过监听不同的端口,在channel初始化时绑定不同的解码器,从而使得通过不同端口把不同数据协议分开处理

相关推荐