Как использовать одновременно 2 сетевых адаптера? - PullRequest
2 голосов
/ 26 августа 2011

У меня есть следующая задача, предложите ли вы (и как, если да), возможно ли ее решить:

Компьютер имеет 2 сетевых адаптера; каждый из них подключен к другому провайдеру сети. Некоторая информация должна быть отправлена ​​первым, а другая - вторым.

Можно ли как-то указать, какой адаптер использовать при инициализации соединения?

1 Ответ

5 голосов
/ 26 августа 2011

В Java вы можете использовать класс NetworkInterface вместе с Socket.bind(), чтобы указать, к какому интерфейсу привязываться.

Пример, взятый из этой ссылки :

NetworkInterface nif = NetworkInterface.getByName("bge0");
Enumeration nifAddresses = nif.getInetAddresses();

Socket soc = new java.net.Socket();
soc.bind(nifAddresses.nextElement());
soc.connect(new InetSocketAddress(address, port));

Затем, установив два сокета, по одному на интерфейс, вы можете использовать оба одновременно.

Другой способ решения этой проблемы, однако, заключается в связывании интерфейса , что является проблемой конфигурации (например, в Linux ) и представляет два физических интерфейса как один виртуальный интерфейс. (Связывание - это полная противоположность указания, какой интерфейс использовать при создании сокета, но не является проблемой программирования)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...