У меня есть клиент-серверное приложение, которое и прослушивает, и отправляет на один и тот же адрес / порт многоадресной рассылки.Проблема в том, что я получу петлю при отправке данных.
UdpClient client = new UdpClient();
client.ExclusiveAddressUse = false;
IPEndPoint localEp = new IPEndPoint(IPAddress.Any, 62255);
client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
client.ExclusiveAddressUse = false;
client.Client.Bind(localEp);
IPAddress multicastaddress = IPAddress.Parse("239.10.4.1");
client.JoinMulticastGroup(multicastaddress);
IPEndPoint remoteep = new IPEndPoint(multicastaddress, 62255);
while (true)
{
Byte[] buffer = client.Receive(ref localEp);
string msgString = "test";
byte[] buffer2 = Encoding.Unicode.GetBytes(msgString);
client.Send(buffer2, buffer2.Length, remoteep);
}
Я пытался использовать localEp.Address.ToString()
для фильтрации того, что отправлено из локального приложения, но когда я пытался на одном компьютере с несколькими NIC
Я все еще получаю локальные сообщения.Есть ли другие способы сделать это?