2014-02-08 3 views
0

Я установил loopback-адаптер на свой компьютер Win7, чтобы я мог привязать его к Netty. Дело в том, что я назначил адрес Loopback IP-адресу 172.16.1.1 /24 (что необходимо). Но когда я пытаюсь связать через Netty, он вместо этого связывается с адресом 127.0.0.1, который известен как IP-адрес по умолчанию. Так что мне просто интересно, как я могу обойти это? Мне нужно СПЕЦИАЛЬНО привязать адаптер Loopback с IP-адресом 172.16.1.1 и портом 162.Netty привязка к неправильному интерфейсу

Изображения, связанные с: связанные

NetUtil - Loopback interface: Software Loopback Interface 1 
NetUtil - Loopback address: /127.0.0.1 (primary) <--- the problem 
NetUtil - Loopback address: /0:0:0:0:0:0:0:1 

Код:

public class SnmpServer { 

private final Logger logger = Logger.getLogger("SnmpServer"); 
//private final static String SNMP_HOST_IP = "172.16.1.1"; 
private static final byte[] SNMP_HOST_ADDR = {(byte)172, (byte)16, (byte)1, (byte)1}; 
private final static int SNMP_TRAP_PORT = 162; 

final ServerBootstrap snmpBootstrap; 

public SnmpServer() { 
    snmpBootstrap = new ServerBootstrap(); 
} 

public void bind() throws Exception { 
    final EventLoopGroup bossGroup = new NioEventLoopGroup(); 
    final EventLoopGroup workerGroup = new NioEventLoopGroup(); 
    final SocketAddress socket = 
      new InetSocketAddress(InetAddress.getByAddress(SNMP_HOST_ADDR), SNMP_TRAP_PORT); 
    try { 
     snmpBootstrap.group(bossGroup, workerGroup) 
       .channel(NioServerSocketChannel.class) 
       .childHandler(new SnmpChannelHandler()); 

     final ChannelFuture future = snmpBootstrap.bind(socket).sync(); 
     //future.channel().closeFuture().sync(); 
    } finally { 
     bossGroup.shutdownGracefully(); 
     workerGroup.shutdownGracefully(); 
    } 
} 

} 
+0

Дело в том, что 127.0.0.1 * есть * адрес обратной связи, а 172.16.1.1 - нет. – EJP

ответ

0

Выходной NetUtil не имеет ничего TODO, к которой он связывается. Он будет привязан к InetSocketAddress, который вы передаете методу bind (...).

1

Исправление состоит в том, что Netty привязывалась ко всем адресам, расположенным в моем файле HOSTS. Я просто перешел к этому файлу и добавил адрес для 172.16.1.1 localhost, а затем вызвал InetAddress.getByName("localhost").

Смежные вопросы