PeerNameResolver.Resolve Metodo

Definizione

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

Overload

Resolve(PeerName)

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

Resolve(PeerName, Int32)

Risolve il nome peer specificato in tutte le aree note al peer chiamante, restituendo al massimo il numero specificato di oggetti PeerNameRecord.

Resolve(PeerName, Cloud)

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

Resolve(PeerName, Cloud, Int32)

Risolve l'oggetto PeerName specificato contenuto nell'oggetto Cloud indicato, restituendo al massimo il numero specificato di oggetti PeerNameRecord.

Commenti

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

Per ogni Resolve metodo, esiste 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 degli eventi asincroni.

Se il parametro non viene fornito, il metodo usa il CloudAvailable collegamento per compilare i parametri cloud. Se il parametro non è presente, il maxRecords valore predefinito di 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 annullata.

Resolve(PeerName)

Risolve l'oggetto PeerName specificato contenuto in tutte le aree note 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.

Restituisce

Oggetto PeerNameRecordCollection contenente tutti i record di nome peer (rappresentati come oggetti PeerNameRecord) associati al nome peer specificato. Un PeerName non protetto può essere registrato da più utenti nello stesso oggetto Cloud e associato a endpoint distinti.

Eccezioni

Il parametro peerName viene impostato su null.

Non è stato possibile risolvere il nome 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. Tutti i cloud vengono sottoposti a query per .PeerName Se il nome del peer non può essere risolto o è null, viene generata una PeerToPeerException classe .

Per i nomi 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 di nome peer in PeerNameRecordCollection. Si noti che l'uso del metodo Resolve in un singolo record di nome peer non invalida la risoluzione di più nomi peer.

Per ogni Resolve metodo, esiste 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 degli eventi asincroni.

Se il parametro non viene fornito, il metodo usa il CloudAvailable collegamento per compilare i parametri cloud.

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

Vedi anche

Si applica a

Resolve(PeerName, Int32)

Risolve il nome peer specificato in tutte le aree note al peer chiamante, restituendo al massimo il numero specificato di oggetti PeerNameRecord.

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 oggetti PeerNameRecord da ottenere da tutti gli oggetti Cloud relativi all'oggetto peerName fornito.

Restituisce

Oggetto PeerNameRecordCollection contenente un numero di voci minore o uguale al valore specificato in maxRecords. Questo insieme contiene i record di nome peer associati all'oggetto PeerName risolto.

Eccezioni

Il parametro peerName viene impostato su null.

Il parametro maxRecords è minore o uguale a zero.

Non è stato possibile risolvere il nome peer fornito.

Commenti

Questo metodo associa un nome peer ai cloud. Tutti i cloud vengono sottoposti a query per il nome del peer. Per i nomi peer non protetti, lo stesso nome peer può essere registrato da utenti diversi nello stesso Cloude associati a endpoint diversi. Se non è possibile risolvere il PeerName valore (ad esempio, il nome del peer non viene pubblicato) PeerToPeerException viene generato.

Per ogni Resolve metodo, esiste 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 degli eventi asincroni.

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

Si applica a

Resolve(PeerName, Cloud)

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

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 contenente il nome peer da risolvere.

Restituisce

Oggetto PeerNameRecordCollection contenente tutti i record di nome peer (rappresentati come oggetti PeerNameRecord) associati al nome peer specificato. Un PeerName non protetto può essere registrato da più utenti nello stesso oggetto Cloud e associato a endpoint distinti.

Eccezioni

Il parametro peerName viene impostato su null.

Non è stato possibile risolvere il nome peer fornito.

Commenti

Se non è possibile risolvere l'oggetto PeerName , ovvero il nome del peer non viene pubblicato, viene generato un PeerToPeerException valore.

Per i nomi 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, esiste 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 degli eventi asincroni.

Se il parametro è , usa il CloudAvailable collegamento per compilare , ScopeNamee ScopeId.PeerNameResolvernull

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

Si applica a

Resolve(PeerName, Cloud, Int32)

Risolve l'oggetto PeerName specificato contenuto nell'oggetto Cloud indicato, restituendo al massimo il numero specificato di oggetti PeerNameRecord.

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

Cloud in cui risolvere l'oggetto peerName.

maxRecords
Int32

Numero massimo di oggetti record di nome peer da ottenere dall'area specificata per l'oggetto peerName indicato.

Restituisce

Oggetto PeerNameRecordCollection contenente un numero di voci minore o uguale al valore specificato in maxRecords. Questo insieme contiene i record di nome peer associati all'oggetto PeerName risolto.

Attributi

Eccezioni

Il parametro peerName viene impostato su null.

Il parametro maxRecords è minore o uguale a zero.

Non è stato possibile risolvere il nome peer fornito.

Commenti

Per i nomi 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 generato un PeerToPeerException valore.

Per ogni Resolve metodo, esiste 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 degli eventi asincroni.

Se il parametro è , usa il CloudAvailable collegamento per compilare , ScopeNamee ScopeId.PeerNameResolvernull

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

Si applica a