Я пытаюсь установить простую связь UDP, работающую в моей локальной сети.
Все, что я хочу сделать, это сделать многоадресную рассылку для всех машин в сети
Вот мой код отправки
public void SendMessage(string message)
{
var data = Encoding.Default.GetBytes(message);
using (var udpClient = new UdpClient(AddressFamily.InterNetwork))
{
var address = IPAddress.Parse("224.100.0.1");
var ipEndPoint = new IPEndPoint(address, 8088);
udpClient.JoinMulticastGroup(address);
udpClient.Send(data, data.Length, ipEndPoint);
udpClient.Close();
}
}
и вот мой код получения
public void Start()
{
udpClient = new UdpClient(8088);
udpClient.JoinMulticastGroup(IPAddress.Parse("224.100.0.1"), 50);
receiveThread = new Thread(Receive);
receiveThread.Start();
}
public void Receive()
{
while (true)
{
var ipEndPoint = new IPEndPoint(IPAddress.Any, 0);
var data = udpClient.Receive(ref ipEndPoint);
Message = Encoding.Default.GetString(data);
// Raise the AfterReceive event
if (AfterReceive != null)
{
AfterReceive(this, new EventArgs());
}
}
}
Он отлично работает на моей локальной машине, но не в сети.
- Кажется, это не брандмауэр. Я отключил его на обеих машинах, и он все еще не работал.
-Это работает, если я делаю прямую отправку на жестко запрограммированный IP-адрес клиентского компьютера (т.е. не многоадресный)
Буду признателен за любую помощь.