Witam wszystkich.

Piszę aplikację, która rozgłasza swoją obecność w sieci. Mój problem polega na tym, że gdy odłączę kabel sieciowy, klient (działający na tym samym hoście) nie odbiera żadnych wiadomości. Mogę oczywiście po obydwu stronach stworzyć po kolejnym wątku wysyłającym i odbierającym wiadomości na loopback, ale może ktoś wie jak stworzyć elegancki uniwersalny kod?

Kod, który wykonuje, wygląda mniej więcej tak:

var udp = new UdpClient { EnableBroadcast = true };
var epBcast = new IPEndPoint(IPAddress.Broadcast, 10600);
var serverString = "CostamDoRozgloszenia";
var bytes = Encoding.ASCII.GetBytes(serverString);
while (true)
{
  udp.Send(bytes, bytes.Length, epBcast);
}

A po stronie klienta:

var udpClient = new UdpClient();
udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
udpClient.Client.ReceiveTimeout = 1000;
udpClient.Client.Bind(new IPEndPoint(IPAddress.Broadcast, 10600));
var iep = new IPEndPoint(IPAddress.Any, 0);
while (_doWork)
{
  try
  {
    _receivedData = _udpClient.Receive(ref iep);
  }
  catch (SocketException e)
  {
    if (e.SocketErrorCode != SocketError.TimedOut) throw;
    continue;
  }
}

Z góry dzięki za wszelkie sugestie.