Отправка широковещательного сообщения UDP, получение нескольких сообщений

У меня есть 2 программы, 1 для отправки широковещательного сообщения UDP и 1, которая прослушивает эту широковещательную рассылку. Моя проблема в том, что иногда, когда я отправляю широковещательную рассылку, получатель получает 2 сообщения. Почему?

Код получателя:

public class Receiver {
  private readonly UdpClient udp = new UdpClient(15000);
  private void StartListening()
  {
    this.udp.BeginReceive(Receive, new object());
  }
  private void Receive(IAsyncResult ar)
  {
    IPEndPoint ip = new IPEndPoint(IPAddress.Any, 15000);
    byte[] bytes = udp.EndReceive(ar, ref ip);
    string message = Encoding.ASCII.GetString(bytes);
    StartListening();
  }
}

Код отправителя:

public class Sender {
  public void Send() {
    UdpClient client = new UdpClient();
    IPEndPoint ip = new IPEndPoint(IPAddress.Broadcast, 15000);
    byte[] bytes = Encoding.ASCII.GetBytes("Foo");
    client.Send(bytes, bytes.Length, ip);
    client.Close();
  }
}
38
задан Oliver 24 April 2013 в 10:29
поделиться