![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Xsander |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Всем доброго времени суток!!!
Столкнулся с такой проблемой, нужно переслать пакета данных на все ПК в сети по UDP протоколу. В принципе, я ее решил вот таким образом:
Со стороны получателя, использую компоненты Indy UDP Server Все это работает, но... В сети существуют подсети, например, 10.9.5.1 и 10.3.2.1 Если посылать пакет с ПК находящегося в подсети 10.9.5.1, то этот пакет получают только ПК из этой подсети, ну и аналогично для других подсетей. Так вот суть вопроса, мне нужно посылать и получать пакеты во всех подсетях, как победить эту заразу??? Помогите, плиз. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Так уж устроен протокол UDP.
Он отправляет пакеты только в одну подсеть. Чтобы отправлять в две подсети, нужно выполнять отправку 2 раза. Чтобы указать, в какую подсеть отправлять, нужно привязать сокет к нужному сетевому адаптеру при помощи функции bind. Без такой привязки винда сама будет выбирать в какую подсеть слать. Что в твоём случае и происходит. Добавлено @ 10:11 ЗЫ. Если компьютер находится только в одной подсети, а слать нужно в разные, то в сети должна быть настроена маршрутизация UDP между подсетями. А у Вас похоже, маршрутизируется только TCP. Добавлено @ 10:12 Если настроить маршрутизацию нет возможности, то нужно, чтобы программа, установленная на компьютере с двумя интерфейсами, при получении пакетов, отсылала бы их копию в другую подсеть. |
|||
|
||||
Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: нет Всего: 7 |
Если на роутерах не фильтруются Broudcast пакеты тогда
Должно работать Иначе Не лечится. ![]() Только multicast посылки.. --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
Xsander |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Т.е. передавать пакет по цепочке, а если подсетей много? Как программа узнает, в какую именно подсеть отправить копию пакета. Конечно, можно предусмотреть возможность отправки копий пакета во все подсети сразу и ждать ответа. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Если подсетей много, то нужно настраивать маршрутизацию UDP или отказываться от броадкаста.
|
|||
|
||||
DCoder |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 1.3.2006 Где: Самара Репутация: нет Всего: нет |
У меня, кстати, тоже вопрос по Indy UDP. Почему по интернету пакеты не доходят, если даже я не пользуюсь броадкастом?
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Маршрут не находят.
Некоторые провайдеры вообще не верят в существование UDP. Настраивают только TCP. Хотя иногда есть и плюсы. Бывает, что UDP идёт, а провайдер его не считает... Можно гигабайты прокачать по UDP - на стоимость это никак не падает. Халява. |
|||
|
||||
OvsInc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.6.2006 Репутация: нет Всего: нет |
По-моему не в тему. Xsander говорит о локальной частной сети с двумя подетями. Связь между ними обеспечивает маршрутизатор. При чем тут провайдеры? На маршритизаторе обязательно стоит брандмауэр (или прокси), а в его политика проста до безобразия (что не надо не пускать) и обусловлена потребностями сети (напимер, стандартный набор - FTP (21 TCP порт), WWW (80 TCP), NetBIOS (137 TCP UDP,138 TCP UDP,139 TCP UDP), DNS (55 UDP)). Так что выход - один использовать либо стандартный порт, либо договариваться с админом. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
||||
|
||||
Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: нет Всего: 7 |
В этом случае роутер ведь не делает разницы между TCP и UDP пакетами? Роутится ведь сам IP, независимо от того, что на него понавешано. ![]() Почему же тогда под TCP маршруты находятся, но под UDP нет? Конечно, имеется в виду ситуация, когда UDP-таки ходит. ![]() --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
DCoder |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 1.3.2006 Где: Самара Репутация: нет Всего: нет |
Но, если я не ошибаюсь, интернет-радио работает на UDP. Как же в этом случае пакеты всегда "находят маршрут"?
|
|||
|
||||
Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: нет Всего: 7 |
Ошибаешься. Оно работает на прямом TCP/IP туннеле. ![]() --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
DCoder |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 1.3.2006 Где: Самара Репутация: нет Всего: нет |
И что это значит?
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |