Internet DOOM utilities
Главная | Найден баг - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Найден баг
cooler_ruДата: Вторник, 19.01.2010, 14:05 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 29
Репутация: 0
Статус: Offline
Здравстуй, bond!

Снова я! И нашёл я один баг: на системах Vista/Win7 не работает (точнее работает отчасти) приём широковещательных UDP пакетов, отправляемых от серверов в локальной сети (когда ставишь опцию "Broadcast to LAN"). Отчасти - потому, что у меня, например, на основном сетевом (физическом) интерфейсе, подключённом к интернету, приём не происходит (хотя передача работает отлично), а на виртуальном (VPN) всё работает без проблем.

Проблема, в обшем, известная, только решения я не нашёл, кроме как "как-то" подправить код (в Висте и далее сетевой стек переписали сильно, так что надо под него как-то подстроиться). Вот есть тема (http://social.msdn.microsoft.com/Forums/en-SG/windowscompatibility/thread/4e5a4725-e1b7-4ea3-a1db-be8ad1a19f34) на анг. Точно о той проблеме, что я поднял здесь.

Причём если сервер стоит на Vista/Win7, а клиент на 2000/XP/2003, то клиент всё принимает. То есть дело только в приёме пакетов типа broadcast UDP 255.255.255.255 (или конкретней в нашем случае: 1.255.255.255).

Вот так вот. Жду комментариев! И новых релизов, если всё получится. biggrin
С уважением, Александр.

 
bondДата: Вторник, 19.01.2010, 15:23 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 97
Репутация: 2
Статус: Offline
ну а при чем тут IDE? это проблема передающей части, серверов - IDE только "слушает" и показывает что пришло
у меня win7 на virtualbox - там действительно есть такая проблема в скултаге. но здемон работает нормально (т.е. проходят broadcast сообщения). да и мои тестовые программки с udp broadcast тоже работали нормально.
я думаю, это что-то в скултаге. к сожалению, сорс закрыт, так что сказать ничего не могу конкретного
 
cooler_ruДата: Вторник, 19.01.2010, 15:42 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 29
Репутация: 0
Статус: Offline
Quote (bond)
IDE только "слушает"

Ну так а я про что? Вот именно, что он слушает, а Виста (у меня, например) блокирует. Я не думаю, что они в новой реализации стека взяли и вот просто так отказались от широковещания.
Я так полагаю там проблема в том, что надо теперь другую функцию использовать или ещё что (точно не знаю). Тем более я слышал, что это что-то связанное с безопасностью (умышленное ограничение).

ПЕРЕДАЮЩАЯ ЧАСТЬ РАБОТАЕТ НОРМАЛьНО! ПОД ВИСТОЙ! А вот приёмник барахлит.

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

Я вот запускаю сервер с привязкой на все адреса (он выбирает за основной адрес физ. подкл.) - в браузере нифига не показывается, как и в скултаге.
Запускаю на 127.0.0.1 - всё сразу мигом показывает. И если на адресе от ВПН интерфейса запустить - тоже всё показывает. А если отдельно на физ. адрес - то опять же не работает.

Поправь, если я чёт путаю, но я так полагаю косяк и в IDE, и в Skulltag'е.

 
bondДата: Вторник, 19.01.2010, 15:57 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 97
Репутация: 2
Статус: Offline
IDE использует один и тот же код для прослушивания сообщений от локальных серверов скуллтаг и здемон, отличия только в некоторых параметрах. при этом здемон работает - если я запускаю под win7 здемон-сервер с отметкой LAN - он сразу появляется в IDE. а скуллтаг - нет.
в winXP оба работают нормально.
т.е. получается, что проблема в передаче пакета в win7 у скултага
возможно, реализация этого механизма в скултаге сделана с ошибками, которые в старых версия виндовс были не критичны.
или может дело в компиляторе (вроде скултаг в vs2008 собирается, а зд - vs6)..
трудно сказать - надо брать код и смотреть..
 
cooler_ruДата: Вторник, 19.01.2010, 16:10 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 29
Репутация: 0
Статус: Offline
Ну да, впринципе не исключено и что сам скултаг шлёт как-то криво.

Ведь broadcast он на то и broadcast, чтобы на все интерфейсы и на все ноды попадал. А как так, я, значит, меняю привязку к интерфейсу и результат уже не тот?..
По идее же не должен меняться. Всё должно так же - либо работать, либо нет.

Ну я уже отписался на офф. скултаг-форум. Поглядим чё скажут.

Благодарствую за оперативные ответы!

 
bondДата: Вторник, 19.01.2010, 16:29 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 97
Репутация: 2
Статус: Offline
я не совсем понимаю, что ты имеешь ввиду под "нодами и интерфейсами", но в данном случае broadcast - это рассылка UDP пакетов по всем адресам подсети (т.е. тем, что входят в маску сети).
скажем, у меня win7 на VirtualBox имеет адрес 10.0.2.15 и маску 255.255.255.0 - значит пакеты будут разосланы по адресам от 10.0.2.1 до 10.0.2.254.

кстати, такой момент: у меня под winxp установлен Касперский7, он поставил свой протокол в сетевой интерфейс - Kaspersky Anti-Virus NDIS Filter. дак вот это все блокирует broadcast передачу данных с LAN серверов (они не появляются в списке). а если его отключить - все работает нормально
может, у тебя тоже какой-нибудь антивирус (или что-то подобное) мешает?

 
cooler_ruДата: Вторник, 19.01.2010, 16:41 | Сообщение # 7
Сержант
Группа: Пользователи
Сообщений: 29
Репутация: 0
Статус: Offline
У меня как раз Kaspersky Internet Security 7 стоит с этим NDIS'ом. Но я всё отключал - не помогает.

А если интерфейсов несколько и сервер привязан к ним всем (0.0.0.0), тогда как получается? Что куда передаётся?

Нод - node - устройство в сети, имеющее свой адрес.

Добавлено (19.01.2010, 16:41)
---------------------------------------------
Я чтобы разобраться даже установил Висту (голую, MSDN) на виртуалку - то же самое. То есть дело не в фаерволах, а именно в новом подходе к обработке старых функций API, связанных с сокетами.

 
  • Страница 1 из 1
  • 1
Поиск:

bond © 2001-2024