J'essaie d'envoyer une diffusion UDP mais wireshark ne signale aucun trafic. Voici l'extrait qui fait le envoi:Pourquoi ma diffusion UDP échoue-t-elle?
void SendBroadcast()
{
String^ ip = "255.255.255.255";
int port = 30718;
String^ message = "test";
UdpClient^ udpClient = gcnew UdpClient();
udpClient->EnableBroadcast = true;
IPEndPoint^ ipDest = gcnew IPEndPoint(IPAddress::Parse(ip), port);
cli::array<unsigned char>^ dgram = Encoding::ASCII->GetBytes(message);
int bytesSent = udpClient->Send(dgram, dgram->Length, ipDest);
if(bytesSent != message->Length)
{
// Failed to send
Console::WriteLine(String::Format("Error: Failed to send all data (bytes sent: {0})", bytesSent));
}
else
{
Console::WriteLine(String::Format("Bytes sent: {0}", bytesSent));
}
}
Il rapporte qu'il a envoyé les données (4 octets), alors pourquoi ne pas Wireshark voir le trafic? J'ai essayé avec une autre application qui diffuse sur le même port et le trafic de cette application se montre bien.
Qu'est-ce qui me manque?
[Modifier] Je viens repéré un poste sur le fond de the UdpClient documentation qui stipule que l'envoi à 255.255.255.255 sur une machine Windows 7 ne fonctionne pas. Cela ne peut pas être vrai du o/s dans son ensemble si ou la diffusion de l'autre application à 255.255.255.255 échouerait?
Recevez-vous sur l'une des machines dans le domaine de la diffusion? –
Je regardais juste le trafic sortant. Si cela fonctionne, les machines distantes enverront une réponse qui apparaît également sur wireshark de l'autre application. –
Si je change l'adresse de diffusion à la portée que je vise (10.10.5.255) cela fonctionne bien alors pourquoi est-il défaillant pour 255.255.255.255? –