Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

broadcast и две сетевухи   Найти похожие ветки 

 
thevalery ©   (2003-11-27 15:07) [0]

У меня на машине 2 сетевухи. Я шлю UDP-броадкастовый пакет. Вопрос - с какой из сетевух он будет отправлен и в какую сеть он попадет? Если можно - объясните физику этого процесса.


 
Anatoly Podgoretsky ©   (2003-11-27 15:08) [1]

В ту, которая будет устраивать по маршруту


 
thevalery ©   (2003-11-27 15:21) [2]

"В ту, которая будет устраивать по маршруту" - Дык это ж броадкаст (айпишник = FF.FF.FF.FF) - какой тут может быть маршрут? Мнэ... Или может пакет пойдет в обе сети?...


 
Rouse_ ©   (2003-11-27 19:59) [3]

Не возлагай таких уж прямо больших надежд на Броадкаст...
Анатолий тебя верно осек...
Если грубо то непонятен даже вопрос...
> Вопрос - с какой из сетевух он будет отправлен
А в какую сеть попадет? А какие сети у тебя есть?


 
Anatoly Podgoretsky ©   (2003-11-27 20:09) [4]

Если этот маршрут не прописан в таблице маршрутизации, то пакеты пойдут на шлюз по умолчанию.
У меня такой маршрут прописан.


 
Verg ©   (2003-11-28 16:09) [5]

Строго говоря, отсылать IP датаграмму на FFFFFFFF нельзя.
Но, в целях совместимости многие системы поддерживают такую передачу. При этом многие системы отсылают в каждый интерфейс по одной копии этой датаграммы, самостоятельно преобразовав такой адрес в бродакастовый адрес подсети данного интерфейса.
Но, по-моему, винды просто отсылают этот пакет в первый попавшийся интерфейс.
Если нужно отправить броадкаст со всех интерфейсов, то нужно получить конфигурацию интерфейсов и выполнить для каждого из них sendto на броадкаст адрес подсети танного интерфейса.


 
thevalery ©   (2003-12-01 12:24) [6]

> Rouse_
>> Вопрос - с какой из сетевух он будет отправлен
> А в какую сеть попадет? А какие сети у тебя есть?

В данный момент у меня есть две сети. Первая - локальная,
вторая - к провайдеру (в интернет, тоже сетевуха - не модем).
В общем, проверить на практике не получается :(
А вот что будет у заказчика - понятия не имею. Суть в том,
что программы должны уметь находить друг друга в локалке,
включаясь и выключаясь "на лету". Исходя из особенностей
задачи выбран UDP. Так что вопрос лишь в том, куда уйдет
широковещательный пакет, если машина включена в две сети.
Меня бы удовлетворили ответы типа "всегда - во все" или
"исходя из таких-то настроек". Да, чуть не забыл, -
все машины под виндой.

> Verg
> Строго говоря, отсылать IP датаграмму на FFFFFFFF нельзя...

А эт еще почему? Броадкаст, пока что, еще никто не отменял,
а при отсылке пакета ставится INADDR_BROADCAST, что и есть FFFFFFFF.
Во всяком случае у меня работает и ни разу не сбоило...

> Если нужно отправить броадкаст со всех интерфейсов, то нужно
> получить конфигурацию интерфейсов и выполнить для каждого из
> них sendto на броадкаст адрес подсети танного интерфейса.

А как делается отсылка отдельно по интерфейсам?
В данный момент у меня работает так (незначащие
куски и обработка ошибок пропущены):


sock: integer;
saUdpServ,saUdpCli: TSockAddr;
usEndPoint: u_short;
...

sock := socket(AF_INET,SOCK_DGRAM,0);
setsockopt(sock,SOL_SOCKET,SO_BROADCAST,@i,4);

saUdpCli.sin_family := AF_INET;
saUdpCli.sin_addr.s_addr := htonl(INADDR_ANY);
saUdpCli.sin_port := htons(0);
bind(sock, saUdpCli, sizeof(TSockAddr));

usEndPoint := PORT;
saUdpServ.sin_family := AF_INET;
saUdpServ.sin_addr.s_addr := htonl(INADDR_BROADCAST);
saUdpServ.sin_port := htons(usEndPoint);
sendto(sock, data, data_length, 0, saUdpServ, sizeof(TSockAddr));


 
Verg ©   (2003-12-01 13:29) [7]


> > Verg
> > Строго говоря, отсылать IP датаграмму на FFFFFFFF нельзя...


> А эт еще почему? Броадкаст, пока что, еще никто не отменял,


Не путай броадкаст Ethernet и броадкаст IP.

В IP броадкаст - это броадкастовый IP адрес подсети.


> А как делается отсылка отдельно по интерфейсам?


В Виндах сначала вызываешь GetIpAddrTable (IpHlpAPI) там тебе вернут список адресов логических интерфейсов с их максами подсетей и броадкастовыми адресами, на которые ф-цией sendto и отпарвляй броадкасты (на все или только на те, которые надо).


 
Fay   (2003-12-01 15:06) [8]

Т.е. если я захочу отправить что-то на диапазон инетовских адресо из своей сетки через роутер, то не лапучится чичего?


 
имя   (2003-12-02 18:17) [9]

Удалено модератором


 
имя   (2003-12-18 14:13) [10]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
4-80343
constku
2003-12-19 10:52
2004.02.25
Как сделать диалоговое окно resizeable?


9-79528
m2003
2003-08-11 12:33
2004.02.25
Сообщение EOutOfResources


1-79753
Слэш
2004-02-12 08:33
2004.02.25
Форма StayOnTop не скрывается


14-80202
Begin
2004-01-30 18:58
2004.02.25
Подскажите, плиз... Лицензионная копия Delphi 7....


14-80132
real_dimedrol
2004-01-30 16:43
2004.02.25
Обои в NT