Ho un computer con più schede NIC e il metodo di invio di UDPClient non riesce continuamente. Ecco il codice:La ricezione multicast UDPClient non riesce sul computer con più 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);
}
}
PORT = 5000 e IP = 224,5.6.7 quindi dovrebbe essere OK. Il problema principale è che non riesco a superare la riga recvSock.Receive(). Vedo i pacchetti in arrivo su wireshark - ma il codice non li elaborerà semplicemente ...
Pensieri? Grazie in anticipo!
Dan
EDIT: posso confermare che il multi NIC causa il problema --- il codice funziona bene con una sola scheda di rete. Scomporre la linea SetSocketOption dovrebbe consentirgli di lavorare con più NIC, ma non riesce ancora .... pensieri?
Per essere chiari, questa applicazione "client" [macchina] ha più schede di rete o il server a cui ci si connette ha più schede di rete ?? –
Poiché ho lo stesso problema, sono disposto a confermare: "l'applicazione client [macchina] ha più NIC". In genere il client si occupa dei server che si trovano su una delle reti NIC multiple. Un server con più schede NIC è importante solo se il client può visualizzare il server _same_ tramite più schede NIC client. –
@Dan Hai trovato una soluzione alternativa? Sto avendo lo stesso problema – J4N