Ho cercato per tutta la rete i lungo ed in largo ma niente
da fare...

Ho la necessità di inviare un pacchetto di dati per
verificare se su un determinato PC è stato avviato
o meno un Server.

Utilizzando un UdpClient invio un pacchetto ed leggo i dati
in risposta alla richiesta, bene, fin qui tutto ok direte...
invece NO.

Nel caso in cui il Pc sia acceso ma il server non è avviato
tutto ok... se invece il PC non è raggiungibile (è spento)
l'applicazione va in blocco resta in attesa di dati in
risposta che mai arriveranno.

codice:
		string CheckServer(String serverName, String whatEver)
		{
			const int numeroPorta = 5121;
			string risposta = "0ffline";
			try
			{
				//Create an instance of UdpClient.
				UdpClient udpClient = new UdpClient(serverName, numeroPorta);
				if (udpClient == null)
				 {
				  udpClient = null;
				  risposta = "offline";
				  return risposta;
				 }

				Byte[] inputToBeSent = new Byte[256];

				inputToBeSent = System.Text.Encoding.ASCII.GetBytes(whatEver.ToCharArray());

				IPHostEntry remoteHostEntry = Dns.GetHostByName(serverName);
				
				IPEndPoint remoteIpEndPoint = new IPEndPoint(remoteHostEntry.AddressList[0], numeroPorta);
				if (remoteIpEndPoint == null)
				 {
				  remoteIpEndPoint = null;
				  inputToBeSent = null;
				  udpClient = null;
				  risposta = "offline";
				  return risposta;
				 }


				int nBytesSent = udpClient.Send(inputToBeSent, inputToBeSent.Length);

				Byte[] received = new Byte[512];

				received = udpClient.Receive(ref remoteIpEndPoint);
			
				String dataReceived = System.Text.Encoding.ASCII.GetString(received);

				risposta = dataReceived;

				udpClient.Close();
			}
			catch (Exception e)
			{
			 risposta = "offline\n" + e.ToString();
			 return risposta;
			}
		  return risposta;
		}
Scopo : visualizzare lo stato di 4 possibili server in
una pagina web in modo che chi voglia unirsi al gioco
possa sapere da subito se vi sono server attivi o no.

Ringrazio anticipatamente tutti quelli che mi sapranno dare
in qualche modo aiuto.