J'ai un ordinateur avec plusieurs cartes d'interface réseau - et la méthode d'envoi de UDPClient échoue continuellement. Voici le code:La réception UDPClient Multicast échoue sur l'ordinateur avec plusieurs cartes réseau
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 et IP = 224.5.6.7 ce qui devrait être OK. Le problème principal est que je ne peux pas dépasser la ligne recvSock.Receive(). Je vois les paquets qui arrivent sur wireshark - mais le code ne les traitera pas ...
Pensées? Merci d'avance!
Dan
EDIT: Je peux confirmer que le multi NPI est à l'origine du problème --- le code fonctionne très bien avec une seule carte réseau. Décommenter la ligne SetSocketOption devrait lui permettre de travailler avec plusieurs cartes réseau, mais cela échoue encore .... pensées?
Pour être clair, cette application "client" [machine] a plusieurs NIC ou le serveur avec lequel vous vous connectez a plusieurs NIC ?? –
Comme j'ai le même problème, je suis prêt à confirmer: "l'application client [machine] a plusieurs NIC". Généralement, le client est concerné par les serveurs se trouvant sur l'un des multiples réseaux NIC. Un serveur qui a plusieurs cartes réseau n'est important que si le client peut voir le serveur _same_ via plusieurs cartes réseau côté client. –
@Dan Avez-vous trouvé une solution de contournement? J'ai le même problème – J4N