Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo PeerNameResolver.Resolve (PeerName)

 

Data di pubblicazione: ottobre 2016

Risolve l'oggetto specificato PeerName in tutte le aree note al peer chiamante.

Spazio dei nomi:   System.Net.PeerToPeer
Assembly:  System.Net (in System.Net.dll)

public PeerNameRecordCollection Resolve(
	PeerName peerName
)

Parametri

peerName
Type: System.Net.PeerToPeer.PeerName

Il PeerName risolvere.

Valore restituito

Type: System.Net.PeerToPeer.PeerNameRecordCollection

Oggetto PeerNameRecordCollection che contiene tutti i record di nome peer (rappresentati come PeerNameRecord oggetti) associato al nome peer specificato. Per i nomi di peer non protetti, lo stesso PeerName possono essere registrati da utenti diversi nella stessa Cloud, e associato a endpoint diversi.

Exception Condition
ArgumentNullException

Il parametro peerName viene impostato su null.

PeerToPeerException

Il nome peer specificato non può essere risolto.

Questo metodo associa un nome di peer a cloud. Tutte le aree vengono cercate i PeerName. Se il nome del peer non può essere risolto o null, un PeerToPeerException viene generata un'eccezione.

Per i nomi di peer non protetti, lo stesso nome può essere registrato (e associato a endpoint diversi) da peer diversi all'interno dell'area stessa.

La chiamata di PeerNameResolver è simile alla chiamata al metodo il Resolve metodo per ogni record di nome peer il PeerNameRecordCollection. Si noti che utilizzando il metodo di risoluzione in un record di nome peer specifico non invalida la risoluzione di più nomi di peer.

Per ogni Resolve (metodo), non esiste un equivalente ResolveAsync metodo. Gli elenchi dei parametri sono identici, ad eccezione del fatto che il metodo ResolveAsync prevede un token di sistema per la gestione degli eventi asincroni.

Se il Cloud parametro non viene specificato, il metodo utilizza il Available scelta rapida per specificare i parametri di cloud.

Il ResolveCompleted evento verrà generato se l'operazione di risoluzione viene completata in errore o viene annullato.

Esempio di codice riportato di seguito viene illustrato come risolvere un PeerName pubblicato in un Cloud.

static void Main(string[] args)
{
    try
    {

        if (args.Length != 1)
        {
            Console.WriteLine("Usage: PeerNameResolver.exe <PeerNameToResolve>");
            return;
        }

        // create a resolver object to resolve a Peer Name that was previously published
        PeerNameResolver resolver = new PeerNameResolver();
        // The Peer Name to resolve must be passed as the first 
        // command line argument to the application
        PeerName peerName = new PeerName(args[0]);
        // Resolve the Peer Name 
        // This is a network operation and will block until the resolve completes
        PeerNameRecordCollection results = resolver.Resolve(peerName);

        // Display the data returned by the resolve operation
        Console.WriteLine("Resolve operation complete.\n", peerName);
        Console.WriteLine("Results for PeerName: {0}", peerName);
        Console.WriteLine();

        int count = 1;
        foreach (PeerNameRecord record in results)
        {
            Console.WriteLine("Record #{0} results...", count);

            Console.Write("Comment:");
            if (record.Comment != null)
            {
                Console.Write(record.Comment);
            }
            Console.WriteLine();

            Console.Write("Data:");
            if (record.Data != null)
            {
                // Assumes the data blob associated with the PeerName 
                // is made up of ASCII characters
                Console.Write(System.Text.Encoding.ASCII.GetString(record.Data));
            }
            Console.WriteLine();

            Console.WriteLine("Endpoints:");
            foreach (IPEndPoint endpoint in record.EndPointCollection)
            {
                Console.WriteLine("\t Endpoint:{0}", endpoint);
                Console.WriteLine();
            }

            count++;
        }

        Console.ReadKey();
    }
    catch (Exception e)
    {
        Console.WriteLine("Error occured while attempting to resolve the PeerName: {0}", e.Message);
        Console.WriteLine(e.StackTrace);

        // P2P is not supported on Windows Server 2003
        if (e.InnerException != null)
        { 
            Console.WriteLine("Inner Exception is {0}", e.InnerException);
        }    
    }
}

.NET Framework
Disponibile da 3.5
Torna all'inizio
Mostra: