Re[2]: Как послать broadcast при двух картах?
От: MichaelGendelev  
Дата: 29.06.05 19:55
Оценка:
Здравствуйте, MaximE, Вы писали:

ME>MichaelGendelev wrote:


>> У меня есть сервер с двумя сетевыми карточками, на каждой висит сеть (через хаб).

>> Одна сеть скажем 172,16,43.* другая 192,168.0.*
>> Я шлю с сервера броадкаст
>> addrTo.sin_addr.S_addr:=htonl(INADDR_BROADCAST);
>> i:=sendTo(sock_out,LoSend^,sizeOf(TLoSend),0,addrTo,sizeof(addrTo));

ME>На какой интерфейс забайнден сокет? На INADDR_ANY?


Отправляющий сокет не забайнден..

>> а на принимающей станции читаю адрес отправителя. Так вот, получается что броадкаст идет в обе сети,

>> но адрес в нем стоит 192.,168.0... !
>> Соотв. принимающая станция из сети 172* не может ответить на этот адрес...
>>
>> Можно сделать так , чтобы принимающая станция получала пакет с адресом из нужной сети?

ME>Возможно поможет создать два сокета и каждый из них забайндить на соответсвующий интерфейс. Broadcast отсылать с обоих сокетов.


Насколько я понимаю, msdn не советует байндить сокеты для датаграмных посылок. или я не прав?
И потом, в общем случае я исходно не знаю заранее, какие интерфейсы есть. (какие подсети.)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.