Форум программистов, компьютерный форум, киберфорум
Perl
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 01.02.2015
Сообщений: 3
1

Несколько сетевых интерфейсов и multicast

01.02.2015, 18:16. Показов 1564. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, форумчане!
Нужна ваша помощь.

Есть многопоточное приложение (Perl), генерирует multicast.
Есть сервер, на котором приложение работает, на сервере несколько сетевых интерфейсов.
Нужно привязать multicast к одному из интерфейсов, т.е. чтоб multicast шел только через один интерфейс.
Как это реализовать?
пробовал bind
Perl
1
2
3
4
5
    
    $cfg{"BIND_IP"} = '192.168.1.3'
        my $inet_addr = inet_aton($cfg{"BIND_IP"});
        my $paddr     = sockaddr_in($UDPport, $inet_addr);
        bind($tsSocket, $paddr) or die "bind:  $!";
но выдает ошибку Use of uninitialized value in subroutine entry at D:/perl/perl/lib/Socket.pm line 833
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2015, 18:16
Ответы с готовыми решениями:

Сокеты и несколько сетевых интерфейсов
Добрый день! Прошу поделиться опытом. При реализации серверного приложения возник следующий...

Несколько сетевых интерфейсов CentOS
Всем привет. Имеетмя сервер Supermicro с установленным CentOS 6.5. NetworkManager показывает 6...

Multicast с нескольких интерфейсов
Нужно ловить мультикаст в IPv4 со всех физических интерфейсов (Windows и Linux). Для этого после...

Объединение сетевых интерфейсов
Кто-нить знает как как обьединить две (три, четыре...) сетевые карты??? Help pls! Очень нуно!

4
5986 / 1995 / 323
Регистрация: 10.12.2013
Сообщений: 6,875
01.02.2015, 18:25 2
значит $paddr undefined после вызова sockaddr. проверял ?
0
0 / 0 / 0
Регистрация: 01.02.2015
Сообщений: 3
01.02.2015, 18:43  [ТС] 3
Странно, код
Perl
1
my $inet_addr = inet_aton($cfg{"BIND_IP"});
не инициализирует переменную $inet_addr (undef)
если прописать строку
Perl
1
my $inet_addr = inet_aton('192.168.1.3');
то все нормально

но теперь другая ошибка.
так как приложение многопоточное, то выдает ошибку
bind: Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт).

Вот код github.com OpenEPG.pl строка 97
0
0 / 0 / 0
Регистрация: 01.02.2015
Сообщений: 3
03.02.2015, 19:10  [ТС] 4
реализовал с помощью IO::Socket::Multicast
вопрос закрыт
0
0 / 0 / 0
Регистрация: 18.02.2015
Сообщений: 4
18.02.2015, 11:13 5
Попробуй немного переписать свой код. Тебе нужно делать запрос мультику, или лить по запросу?
Perl
1
$cfg = Net::Interface->new('eth0');
0
18.02.2015, 11:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2015, 11:13
Помогаю со студенческими работами здесь

Конфликт интерфейсов(сетевых карт)
Здравствуйте дорогие форумчане. У меня появилась проблема с приобретением второй сетевой карты для...

Получение всех сетевых интерфейсов
Здравствуйте. Недавно начал изучать C# и в целях обучения переношу свои маленькие программы с...

Процедура авто-синхронизации сетевых интерфейсов
Всем привет. Начал изучать cisco,читаю официальное руководство по подготовке к сертификации CCENT....

Новичек. GNS3. Настройка сетевых интерфейсов. Недочеты
изза полома ноги не могу ходить на пары, а задания выполнять нужно - сказали примут в эл.виде, ну...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru