绑定到多个接口但不是UDP中的所有/ 0.0.0.0

时间:2013-08-29 05:11:46

标签: netty

您好我使用netty 4而我从不同的源地址发送UDP dgram,我首先尝试将绑定Bootstrap绑定到单个端口bind(0)并发送与不同发送方的数据报,每个发送方都是我的一个接口的ip (eth0:0,eth0:1,......)。它不起作用,它总是从同一个接口发送。所以我不知道这是不是一个错误,也许数据报的发送者字段只用于能够在recv()中知道发送者,而不是在send()中修复源。

接下来,我尝试将我的bootstrap多次绑定到我想要使用的所有接口:

foreach (ifaces as iface){
  channels.add(client.bind(iface).sync().channel());
}

但它引发了一个例外。是否无法在同一个bootrap上多次调用bind?

所以我最终成功为每个接口创建了一个引导程序,例如:

foreach (ifaces as iface){
  client = new Bootstrap().group(reuseThePool).
     channel(NioDatagramChannel.class).handler(new Handler(this));
  channels.add(client.bind(iface).sync().channel());
}

它有效,但它是要走的路吗?每个bind()的一个bootstrap?

0 个答案:

没有答案