Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c#] Problema Scrivere UDP Client che non si BLocca

    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.

    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  2. #2
    up
    Possibile che nessuno sappia come si fa?
    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.