Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Широковещание через заданный интерфейс, метод setNetworkInterface 
V
    Опции темы
atoi
Дата 13.1.2011, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.10.2010

Репутация: нет
Всего: нет



Здравствуйте! Хотел проконсультироваться по следующему вопросу: есть компьютер с двумя сетевыми картами, одна работает внутренней подсети 192.168.0 - через этот интерфейс производится обмен с устройствами - здесь все ок. Есть вторая сетевая карта, которая работает во второй подсети 192.168.169, но вот тут беда, иногда пакеты не идут через интерфейс сетевой карты (192.168.169.131), например, после перезагрузки компьютера (тогда в течении всего сеанса ни одна дэйтаграмма не будет отправлена). Если я все правильно понял из описания API документации, настройка передачи дэйтаграм выполняется через соответствующий интерфейс выполняется с помощью метода setNetworkInterface.

Вот непосредственно сам код:
Код

public void sendPacket (String addr, int port) throws Exception {
...
...
        InetAddress kasdu_address = InetAddress.getByName(addr);
        if (kasdu_address.isMulticastAddress()) {
            InetAddress group = InetAddress.getByName(addr);
            MulticastSocket mSock = new MulticastSocket(port);

            // указываю интерфейс 192.168.169.131
            if (mSock != null) { mSock.setNetworkInterface(NetworkInterface.getByInetAddress(kasdu_interface)); }   
            
            // присоединяюсь к группе
            mSock.joinGroup(group);   
            
            DatagramPacket packet = new DatagramPacket(this.toBytes(), this.length, group, port);
            mSock.send(packet);
            mSock.leaveGroup(group);       // ухожу из группы
        }
...
...
}


Подскажите в чем может быть проблема и как ее решить smile .
P.S. Если работа ведется через один интерфейс, то есть 192.168.0.254, то все идеально - никаких проблем. Приложение функционирует под Windows XP.

Беда была не в коде smile.

Это сообщение отредактировал(а) atoi - 17.1.2011, 15:21
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.