【问题标题】:Is it normal in netty for bidirectionnal communication on multicast to have to create 2 bootstrap?在netty中,多播双向通信必须创建2个引导程序是否正常?
【发布时间】:2019-08-07 20:57:23
【问题描述】:

我对 netty 并不陌生,即使使用 muticast,但这是我第一次需要同时接收和发送多播程序。

我需要编写一些可以与 mDNS 相比的代码。所以我的程序的每个实例都需要回复查询,因此需要能够接收查询并发送回复(在多播 udp 中)。

但问题是我无法在引导类给我的通道上不使用 connect() 的情况下发送数据包,而当我这样做时,我似乎无法再接收了。

所以必须创建2个引导程序是否正常,唯一的区别是发送的我必须连接通道,而接收的我不能连接它。

它有效,但我想知道它是否正确。

谢谢。

注意:在 JVM 1.8u181 上使用 Netty v4.1.34.Final

【问题讨论】:

    标签: java udp netty multicast


    【解决方案1】:

    您应该能够使用DatagramPacket(...) 发送,并在构造函数中指定远程地址。

    【讨论】:

    • 我在 netty 中找不到这个类:/ 我能找到的最接近的是 DefaultDatagramChannelConfig。无论如何我必须如何使用它才能使用我的编码器/处理程序?
    • 对不起是DatagramPacket
    • 所以你告诉我应该使用引导程序,我不会在引导程序.bind.sync.channel 将返回我的通道上调用连接方法。然后使用类似 new DatagramPacket(payload, addr) 的东西来发送我的数据包?如果是这样,编码器没用?
    • 我已经尝试过你告诉我要使用的修改,它确实有效,但我似乎无法通过通道初始化程序使用我的编码器,但我可以解决这个问题。
    • 请用有问题的代码打开另一个问题,我们将看看如何使它工作:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    相关资源
    最近更新 更多