Я отправляю направленные широковещательные пакеты от UdpClient.
Я также прослушиваю целевой порт на втором UdpClient (в том же приложении).
Я не хочу видетьпакеты, созданные мной, поэтому я подумал, что это просто установка MulticastLoopback в false, но это не работает.Я все еще вижу свои собственные пакеты.
private readonly IPAddress BroadcastAddress = IPAddress.Parse("169.254.255.255");
private const int Port = 0x88a4;
private UdpClient _udpSend, _udpReceive;
private void InitUdp()
{
_udpSend = new UdpClient();
_udpSend.EnableBroadcast = true;
_udpSend.MulticastLoopback = false;
_udpSend.Connect(BroadcastAddress, Port);
_udpReceive = new UdpClient(new IPEndPoint(IPAddress.Any, Port));
_udpReceive.MulticastLoopback = false;
_udpReceive.BeginReceive(OnUdpPacket, null);
}
Любые идеи кто-нибудь?
Могу ли я добиться этого с помощью UdpClient или мне нужно вместо этого вернуться к необработанным сокетам?
РЕДАКТИРОВАТЬ:
Я пробовалиспользуя один экземпляр UdpClient для отправки и получения, но теперь я никогда не получаю никаких данных, независимо от настройки MulticastLoopback!
Я пытался прослушивать как IPAddress.Any, так и мой локальный IP, но я никогда не вижулюбые пакеты.
private readonly IPAddress BroadcastAddress = IPAddress.Parse("169.254.255.255");
private const int Port = 0x88a4;
private UdpClient _udpClient;
private void InitUdp()
{
_udpClient= new UdpClient(new IPEndPoint(IPAddress.Any, Port));
_udpClient.Connect(BroadcastAddress, Port);
_udpClient.BeginReceive(OnUdpPacket, null);
}