Здравствуйте, 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 не советует байндить сокеты для датаграмных посылок. или я не прав?
И потом, в общем случае я исходно не знаю заранее, какие интерфейсы есть. (какие подсети.)