У меня есть компьютер с несколькими сетевыми картами - и метод отправки UDPClient постоянно терпит неудачу. Вот код:
private static void receiveData()
{
recvSock = new UdpClient(PORT);
//recvSock.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastInterface, mainInterface);
recvSock.JoinMulticastGroup(IPAddress.Parse(IP), 50);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 0);
while (true)
{
byte[] data = recvSock.Receive(ref iep);
// Do not include messages from us
if (myIPs.Contains(iep.Address))
continue;
string stringData = Encoding.ASCII.GetString(data, 0, data.Length);
Console.WriteLine("received: " + stringData);
}
}
PORT = 5000 и IP = 224.5.6.7, так что все должно быть в порядке. Основная проблема в том, что я просто не могу пройти строку recvSock.Receive (). Я вижу пакеты, поступающие через wireshark - но код просто не будет их обрабатывать ...
Мысли? Заранее спасибо!
Dan
РЕДАКТИРОВАТЬ: я могу подтвердить, что проблема связана с несколькими сетевыми картами --- код работает нормально с одним сетевым адаптером Раскомментирование строки SetSocketOption должно позволить ей работать с несколькими сетевыми картами, но все равно не получается .... мысли?