Я пытаюсь отправить UDP-трансляцию, но wireshark не сообщает о трафике. Вот фрагмент кода, который выполняет отправку:
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));
}
}
Он сообщает, что отправил данные (4 байта), так почему Wireshark не видит трафик? Я пытался с другим приложением, которое вещает на тот же порт, и трафик из этого приложения показывает нормально.
Чего мне не хватает?
[Редактировать] Я только что заметил сообщение в нижней части документации UdpClient , в которой говорится, что отправка на 255.255.255.255 на компьютере с Windows 7 не работает. Это не может относиться к операциям o / s в целом, хотя передача из другого приложения на номер 255.255.255.255 не будет выполнена?