我试图发送一个多播数据包然后接收回来的响应(应该只有一个响应。)我可以发送数据包,wireshark显示回复,但我的程序从未收到它。我尝试了一些不同的东西,但这是我的无法运行的代码的当前状态。
IPEndPoint epReceive = new IPEndPoint(IPAddress.Any, 5355);
IPEndPoint epSend = new IPEndPoint(IPAddress.Parse("224.0.0.252"), 5355);
UdpClient sendClient = new UdpClient();
sendClient.ExclusiveAddressUse = false;
sendClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
sendClient.Client.Bind(epReceive);
sendClient.Send(packet, packetLength, epSend);
byte[] buffer = sendClient.Receive(ref epReceive);
sendClient.Close();
此代码只挂在sendClient.Receive()行上。我意识到这个代码目前是阻塞的,可以/应该是线程化的,但是出于使用它的目的,它并不是一个问题。