PeerNameResolver.Resolve Metodo

Definizione

Risolve un PeerName oggetto in un PeerNameRecord oggetto utilizzando il protocollo PNRP.

Overload

Nome Descrizione
Resolve(PeerName)

Risolve l'oggetto specificato PeerName in tutti i cloud noti al peer chiamante.

Resolve(PeerName, Int32)

Risolve il nome peer specificato in tutti i cloud noti al peer chiamante, restituendo non più del numero specificato di PeerNameRecord oggetti.

Resolve(PeerName, Cloud)

Risolve l'oggetto specificato PeerName nell'oggetto specificato Cloud.

Resolve(PeerName, Cloud, Int32)

Risolve l'oggetto specificato nell'oggetto specificato PeerNameCloud, restituendo non più del numero specificato di PeerNameRecord oggetti.

Commenti

Questo metodo associa i nomi peer ai cloud. La chiamata al PeerNameResolver metodo è simile alla chiamata del Resolve metodo per ogni record del nome peer in PeerNameRecordCollection. Si noti che l'uso del metodo Resolve in un singolo record del nome peer non invalida la risoluzione di più nomi di peer.

Per ogni Resolve metodo è presente un metodo equivalente ResolveAsync . Sono identici nei parametri passati, ad eccezione del fatto che il metodo ResolveAsync include un token di sistema nell'elenco dei parametri per la gestione asincrona degli eventi.

Se il Cloud parametro non viene specificato, il metodo usa il Available collegamento per compilare i parametri cloud. Se il maxRecords parametro non è presente, il valore predefinito zero causa la generazione di un'eccezione ArgumentOutOfRangeException .

Questo evento verrà generato anche se l'operazione di risoluzione viene completata in caso di errore o di annullamento.

Resolve(PeerName)

Risolve l'oggetto specificato PeerName in tutti i cloud noti al peer chiamante.

public:
 System::Net::PeerToPeer::PeerNameRecordCollection ^ Resolve(System::Net::PeerToPeer::PeerName ^ peerName);
public System.Net.PeerToPeer.PeerNameRecordCollection Resolve(System.Net.PeerToPeer.PeerName peerName);
member this.Resolve : System.Net.PeerToPeer.PeerName -> System.Net.PeerToPeer.PeerNameRecordCollection
Public Function Resolve (peerName As PeerName) As PeerNameRecordCollection

Parametri

peerName
PeerName

Oggetto PeerName da risolvere.

Valori restituiti

Oggetto PeerNameRecordCollection che contiene tutti i record del nome peer (rappresentati come PeerNameRecord oggetti) associati al nome peer specificato. Per i nomi di peer non protetti, lo stesso PeerName può essere registrato da utenti diversi nello stesso Cloudoggetto e associato a endpoint diversi.

Eccezioni

Il parametro peerName viene impostato su null.

Impossibile risolvere il nome del peer specificato.

Esempio

Nell'esempio di codice seguente viene illustrato come risolvere un PeerName oggetto pubblicato in qualsiasi Cloudoggetto .

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 occurred 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);
        }
    }
}

Commenti

Questo metodo associa un nome peer ai cloud. Vengono eseguite query su tutti i cloud per .PeerName Se il nome del peer non può essere risolto o è null, viene generata un'eccezione PeerToPeerException .

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

La chiamata al PeerNameResolver metodo è simile alla chiamata del Resolve metodo per ogni record del nome peer in PeerNameRecordCollection. Si noti che l'uso del metodo Resolve in un singolo record del nome peer non invalida la risoluzione di più nomi di peer.

Per ogni Resolve metodo è presente un metodo equivalente ResolveAsync . Gli elenchi di parametri sono identici, ad eccezione del fatto che il metodo ResolveAsync include un token di sistema per la gestione asincrona degli eventi.

Se il Cloud parametro non viene specificato, il metodo usa il Available collegamento per compilare i parametri cloud.

L'evento ResolveCompleted verrà generato se l'operazione di risoluzione viene completata in caso di errore o di annullamento.

Vedi anche

Si applica a

Resolve(PeerName, Int32)

Risolve il nome peer specificato in tutti i cloud noti al peer chiamante, restituendo non più del numero specificato di PeerNameRecord oggetti.

public:
 System::Net::PeerToPeer::PeerNameRecordCollection ^ Resolve(System::Net::PeerToPeer::PeerName ^ peerName, int maxRecords);
public System.Net.PeerToPeer.PeerNameRecordCollection Resolve(System.Net.PeerToPeer.PeerName peerName, int maxRecords);
member this.Resolve : System.Net.PeerToPeer.PeerName * int -> System.Net.PeerToPeer.PeerNameRecordCollection
Public Function Resolve (peerName As PeerName, maxRecords As Integer) As PeerNameRecordCollection

Parametri

peerName
PeerName

Oggetto PeerName da risolvere.

maxRecords
Int32

Numero massimo di PeerNameRecord oggetti da ottenere da tutti gli Cloud oggetti per l'oggetto peerNamefornito.

Valori restituiti

Oggetto PeerNameRecordCollection la cui dimensione è minore o uguale alle maxRecords voci. Questa raccolta contiene i record dei nomi peer associati all'oggetto PeerName risolto.

Eccezioni

Il parametro peerName viene impostato su null.

Il maxRecords parametro è minore o uguale a zero.

Il nome peer fornito non può essere risolto.

Commenti

Questo metodo associa un nome peer ai cloud. Vengono eseguite query su tutti i cloud per il nome del peer. Per i nomi di peer non protetti, lo stesso nome peer può essere registrato da utenti diversi nello stesso Cloude associati a endpoint diversi. Se non PeerName è possibile risolvere ( ad esempio, il nome del peer non viene pubblicato) viene generata un'eccezione PeerToPeerException .

Per ogni Resolve metodo è presente un metodo equivalente ResolveAsync . Gli elenchi di parametri sono identici, ad eccezione del fatto che il metodo ResolveAsync include un token di sistema per la gestione asincrona degli eventi.

L'evento ResolveCompleted verrà generato se l'operazione di risoluzione viene completata in caso di errore o di annullamento.

Si applica a

Resolve(PeerName, Cloud)

Risolve l'oggetto specificato PeerName nell'oggetto specificato Cloud.

public:
 System::Net::PeerToPeer::PeerNameRecordCollection ^ Resolve(System::Net::PeerToPeer::PeerName ^ peerName, System::Net::PeerToPeer::Cloud ^ cloud);
public System.Net.PeerToPeer.PeerNameRecordCollection Resolve(System.Net.PeerToPeer.PeerName peerName, System.Net.PeerToPeer.Cloud cloud);
member this.Resolve : System.Net.PeerToPeer.PeerName * System.Net.PeerToPeer.Cloud -> System.Net.PeerToPeer.PeerNameRecordCollection
Public Function Resolve (peerName As PeerName, cloud As Cloud) As PeerNameRecordCollection

Parametri

peerName
PeerName

Oggetto PeerName da risolvere.

cloud
Cloud

Oggetto Cloud in cui risolvere il nome del peer.

Valori restituiti

PeerNameRecordCollection contenente tutti i record del nome peer (rappresentati come PeerNameRecord oggetti) associati al nome peer specificato. Per i nomi di peer non protetti, lo stesso PeerName può essere registrato da utenti diversi nello stesso Cloudoggetto e associato a endpoint diversi.

Eccezioni

Il parametro peerName viene impostato su null.

Il nome peer fornito non può essere risolto.

Commenti

Se non PeerName è possibile risolvere ( ovvero, il nome del peer non viene pubblicato) viene generata un'eccezione PeerToPeerException .

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

Per ogni Resolve metodo è presente un metodo equivalente ResolveAsync . Gli elenchi di parametri sono identici, ad eccezione del fatto che il metodo ResolveAsync include un token di sistema per la gestione asincrona degli eventi.

Se il Cloud parametro è null, PeerNameResolver usa il Available collegamento per compilare Name, Scopee ScopeId.

L'evento ResolveCompleted verrà generato se l'operazione di risoluzione viene completata in caso di errore o di annullamento.

Si applica a

Resolve(PeerName, Cloud, Int32)

Risolve l'oggetto specificato nell'oggetto specificato PeerNameCloud, restituendo non più del numero specificato di PeerNameRecord oggetti.

public:
 System::Net::PeerToPeer::PeerNameRecordCollection ^ Resolve(System::Net::PeerToPeer::PeerName ^ peerName, System::Net::PeerToPeer::Cloud ^ cloud, int maxRecords);
[System.Security.SecurityCritical]
public System.Net.PeerToPeer.PeerNameRecordCollection Resolve(System.Net.PeerToPeer.PeerName peerName, System.Net.PeerToPeer.Cloud cloud, int maxRecords);
[<System.Security.SecurityCritical>]
member this.Resolve : System.Net.PeerToPeer.PeerName * System.Net.PeerToPeer.Cloud * int -> System.Net.PeerToPeer.PeerNameRecordCollection
Public Function Resolve (peerName As PeerName, cloud As Cloud, maxRecords As Integer) As PeerNameRecordCollection

Parametri

peerName
PeerName

Oggetto PeerName da risolvere.

cloud
Cloud

Oggetto Cloud in cui risolvere l'oggetto peerName.

maxRecords
Int32

Numero massimo di oggetti record del nome peer da ottenere dal cloud specificato per l'oggetto specificato peerName.

Valori restituiti

Oggetto PeerNameRecordCollection la cui dimensione è minore o uguale alle maxRecords voci. Questa raccolta contiene i record dei nomi peer associati all'oggetto PeerName risolto.

Attributi

Eccezioni

Il parametro peerName viene impostato su null.

Il maxRecords parametro è minore o uguale a zero.

Il nome peer fornito non può essere risolto.

Commenti

Per i nomi di peer non protetti, lo stesso nome può essere registrato (e associato a endpoint diversi) da peer diversi all'interno dello stesso cloud. Se il nome del peer non può essere risolto, viene generata un'eccezione PeerToPeerException .

Per ogni Resolve metodo è presente un metodo equivalente ResolveAsync . Gli elenchi di parametri sono identici, ad eccezione del fatto che il metodo ResolveAsync include un token di sistema per la gestione asincrona degli eventi.

Se il Cloud parametro è null, PeerNameResolver usa il Available collegamento per compilare Name, Scopee ScopeId.

L'evento ResolveCompleted verrà generato se l'operazione di risoluzione viene completata in caso di errore o di annullamento.

Si applica a