Tengo una computadora con varias NIC, y el método de envío UDPClient falla continuamente. Aquí está el código:UDPClient La recepción de multidifusión falla en la computadora con varias NIC
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);
}
}
PUERTO = 5000 e IP = 224.5.6.7 por lo que debería estar bien. El principal problema es que simplemente no puedo pasar la línea recvSock.Receive(). Veo que los paquetes vienen sobre wireshark, pero el código simplemente no los procesará ...
¿Pensamientos? ¡Gracias por adelantado!
Dan
EDIT: Me puede confirmar que las NIC múltiples está causando el problema --- el código funciona bien con una sola NIC. Descomentar la línea SetSocketOption debería permitirle trabajar con múltiples NIC, pero aún falla ... ¿pensamientos?
Para ser claros, esta [máquina] de "cliente" tiene varias NIC o el servidor al que se conecta tiene varias NIC. –
Como estoy teniendo el mismo problema, estoy dispuesto a confirmar: "la aplicación del cliente [máquina] tiene varias NIC". Normalmente, al cliente le preocupan los servidores que se encuentran en cualquiera de las múltiples redes de NIC. Un servidor que tiene varias NIC solo es importante si el cliente puede ver el _same_ servidor a través de varias NIC del lado del cliente. –
@Dan ¿Encontró una solución? Estoy teniendo el mismo problema – J4N