我想發送UDP廣播,但wireshark沒有報告任何流量。下面是不發送的片段:爲什麼我的UDP廣播失敗?
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的交通?我已經嘗試過在同一端口上廣播的另一個應用程序,並且來自該應用程序的流量顯示正常。
我錯過了什麼?
[編輯]我剛剛在the UdpClient documentation的底部發現了一個帖子,其中指出在windows 7機器上發送到255.255.255.255不起作用。這不可能是作爲一個整體的o/s,或從其他應用程序到255.255.255.255的廣播將失敗?
你是否在廣播域的機器上接收它? – 2011-06-09 09:05:36
我只是看着傳出的流量。如果有效,遠程機器將發送一個響應,該響應也顯示在另一個應用程序的wireshark上。 – 2011-06-09 09:09:38
如果我將廣播地址更改爲我瞄準的範圍(10.10.5.255),它可以正常工作,那麼爲什麼它會失敗255.255.255.255? – 2011-06-09 09:10:20