获取数据报数据包UDP Netty 4.1的源IP地址



我已经使用Netty 4.1设置了基本的UDP服务器,该服务器在读取数据包的数据方面效果很好。我想在接收UDP数据包时将功能添加到服务器中以回复客户端。这样做的最好方法是什么?我知道UDP是无连接的通信方法,但是您应该能够获得IP地址并回复客户端?

我的代码如下;

public final class Server {
private static final int PORT = Integer.parseInt(System.getProperty("port", "6565"));
public static void runCommand () throws Exception {
    System.out.print("Server is started on port = "+PORT+"n");
    EventLoopGroup group = new NioEventLoopGroup();
    try {
        Bootstrap b = new Bootstrap();
        b.group(group)
                .channel(NioDatagramChannel.class)
                .handler(new ServerHandler());
        b.bind(PORT).sync().channel().closeFuture().await();
    } finally {
        group.shutdownGracefully();
    }
}

}

public class ServerHandler extends SimpleChannelInboundHandler<DatagramPacket> {
@Override
public void channelRead0 (ChannelHandlerContext ctx, DatagramPacket packet) throws Exception {
    System.err.println ("Messaged received on " + new Date() + ":r");
    System.err.println(packet.content().toString(CharsetUtil.UTF_8) + "rn");
}
@Override
public void channelReadComplete(ChannelHandlerContext ctx) {
    ctx.flush();
}

@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
    cause.printStackTrace();
    ctx.close();
}

}

有人可以指向我如何获得源IP地址的正确方向?非常感谢您的帮助

使用:

packet.sender().getAddress()

源IP地址在DatagramPacket中。

最新更新