直接向用户发送消息

Send message directly to user

我希望通过 IP 地址直接向客户发送消息。我目前只能在处理程序中调用 ChannelRead0 并从那里获取上下文时发送消息:

protected override void ChannelRead0(IChannelHandlerContext ctx, DatagramPacket packet) {

   ctx.WriteAsync(new DatagramPacket(buffer, packet.Sender));

}

我的引导程序:

var bootstrap = new Bootstrap();
bootstrap
  .Group(group)
  .Channel<SocketDatagramChannel>()
  .Option(ChannelOption.SoBroadcast, true)
  .Handler(new LoggingHandler("SRV-LSTN"))
  .Handler(new ActionChannelInitializer<IChannel>(channel =>  {

      channel.Pipeline.AddLast("UDPServer", new protocols.UDP());

  }));


IChannel boundChannel = await bootstrap.BindAsync(8888);

我也希望能够从此功能之外发送消息。有什么方法可以从这个函数/class 外部向客户端发送消息?我曾尝试写信给 boundChannel,但它似乎没有发送 .write.writeAsync 函数。

我正在使用从 Java.

移植的 DotNetty 库 (https://github.com/Azure/DotNetty)

一个IChannel有一个WriteAndFlushAsync方法可以用来写消息,这类似于Netty Java版本中的writeAndFlush方法。