2011-01-27 1 views
0

У меня есть приложение C# .net 3.5, где я использую System.Net.Sockets.Socket.SendTo() для отправки кадра UDP на адрес многоадресной рассылки 224.0.100.1. Затем я использую BeginReceiveFrom() в том же сокете, чтобы прослушивать все ответы.Выбор адаптера SendTo использует для передачи многоадресного фрейма

Но в системах, где имеется более одного сетевого адаптера, кажется случайным, на какой адаптер отправляется пакет UDP.

Как я могу разрешить пользователю выбрать адаптер, который будет использоваться, и заставить SendTo() использовать этот адрес?

Спасибо, PaulH

+0

см., Что: http://stackoverflow.com/questions/4822968/win32-sockets-forcing-ip-packets-to-leave-physical-interfaces-when-sending-to –

+0

@PaulH Это работало сейчас? Я столкнулся со смешной проблемой. – Gobliins

+0

@Gobliins Да, это работает, когда я использую Socket.Bind(). Если это не сработает, отправьте новый вопрос с кодом. – PaulH

ответ

0

Использование Socket.Bind() установить локальную конечную точку перед отправкой.