Freigeben über


PeerNameResolver.Resolve Methode

Definition

Löst ein PeerName-Objekt unter Verwendung des Protokolls PNRP in ein PeerNameRecord-Objekt auf.

Überlädt

Resolve(PeerName)

Löst den angegebenen PeerName in allen Wolken auf, die dem aufrufenden Peer bekannt sind.

Resolve(PeerName, Int32)

Löst den angegebenen Peernamen in allen Wolken auf, die dem aufrufenden Peer bekannt sind, und gibt nicht mehr als die angegebene Anzahl von PeerNameRecord-Objekten zurück.

Resolve(PeerName, Cloud)

Löst den angegebenen PeerName in der angegebenen Cloud auf.

Resolve(PeerName, Cloud, Int32)

Löst den angegebenen PeerName in der angegebenen Cloud auf und gibt nicht mehr als die angegebene Anzahl von PeerNameRecord-Objekten zurück.

Hinweise

Diese Methode ordnet Peernamen Clouds zu. Das Aufrufen der PeerNameResolver -Methode ähnelt dem Aufrufen der Resolve -Methode für jeden Peernamendatensatz im PeerNameRecordCollection. Beachten Sie, dass die Verwendung der Resolve-Methode für einen einzelnen Peernamendatensatz das Auflösen mehrerer Peernamen nicht ungültig macht.

Für jede Resolve Methode gibt es eine entsprechende ResolveAsync Methode. Sie sind in den übergebenen Parametern identisch, mit der Ausnahme, dass die ResolveAsync-Methode ein Systemtoken in ihrer Parameterliste für die asynchrone Ereignisbehandlung enthält.

Wenn der Cloud Parameter nicht angegeben wird, verwendet die -Methode die Available Verknüpfung, um Cloudparameter auszufüllen. Wenn der maxRecords Parameter fehlt, wird mit dem Standardwert 0 (null) eine ArgumentOutOfRangeException Ausnahme ausgelöst.

Dieses Ereignis wird auch ausgelöst, wenn der Auflösungsvorgang fehlerhaft abgeschlossen oder abgebrochen wird.

Resolve(PeerName)

Löst den angegebenen PeerName in allen Wolken auf, die dem aufrufenden Peer bekannt sind.

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

Parameter

peerName
PeerName

Der aufzulösende PeerName.

Gibt zurück

Eine PeerNameRecordCollection, die alle Peernamensdatensätze enthält (als PeerNameRecord-Objekte dargestellt), die dem angegebenen Peernamen zugeordnet sind. Bei ungesicherten Peernamen kann der gleiche PeerName von mehreren Benutzern in derselben Cloud registriert werden und unterschiedlichen Endpunkten zugeordnet werden.

Ausnahmen

Der peerName-Parameter ist auf null festgelegt.

Der angegebene Peername kann nicht aufgelöst werden.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein PeerName in einem beliebigen Cloudveröffentlichten aufgelöst wird.

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

Hinweise

Diese Methode ordnet Clouds einen Peernamen zu. Alle Clouds werden für PeerNameabgefragt. Wenn der Peername nicht aufgelöst werden kann oder lautet null, wird ein PeerToPeerException ausgelöst.

Bei nicht gesicherten Peernamen kann derselbe Name von verschiedenen Peers in derselben Cloud registriert (und verschiedenen Endpunkten zugeordnet) werden.

Das Aufrufen der PeerNameResolver -Methode ähnelt dem Aufrufen der Resolve -Methode für jeden Peernamendatensatz im PeerNameRecordCollection. Beachten Sie, dass die Verwendung der Resolve-Methode für einen einzelnen Peernamendatensatz das Auflösen mehrerer Peernamen nicht ungültig macht.

Für jede Resolve Methode gibt es eine entsprechende ResolveAsync Methode. Ihre Parameterlisten sind identisch, mit der Ausnahme, dass die ResolveAsync-Methode ein Systemtoken für die asynchrone Ereignisbehandlung enthält.

Wenn der Cloud Parameter nicht angegeben wird, verwendet die -Methode die Available Verknüpfung, um Cloudparameter auszufüllen.

Das ResolveCompleted Ereignis wird ausgelöst, wenn der Auflösungsvorgang fehlerhaft abgeschlossen oder abgebrochen wird.

Weitere Informationen

Gilt für:

Resolve(PeerName, Int32)

Löst den angegebenen Peernamen in allen Wolken auf, die dem aufrufenden Peer bekannt sind, und gibt nicht mehr als die angegebene Anzahl von PeerNameRecord-Objekten zurück.

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

Parameter

peerName
PeerName

Der aufzulösende PeerName.

maxRecords
Int32

Die maximale Anzahl von PeerNameRecord-Objekten, die aus allen Cloud-Objekten für den angegebenen peerName abgerufen werden können.

Gibt zurück

Eine PeerNameRecordCollection, deren Größe kleiner oder gleich der mit maxRecords angegebenen Anzahl von Einträgen ist. Diese Auflistung enthält Peernamensdatensätze, die dem aufgelösten PeerName zugeordnet sind.

Ausnahmen

Der peerName-Parameter ist auf null festgelegt.

Der maxRecords-Parameter ist kleiner oder gleich 0 (null).

Der angegebene Peername kann nicht aufgelöst werden.

Hinweise

Diese Methode ordnet Clouds einen Peernamen zu. Alle Clouds werden nach dem Peernamen abgefragt. Für ungesicherte Peernamen kann derselbe Peername von verschiedenen Benutzern in demselben Cloudregistriert und verschiedenen Endpunkten zugeordnet werden. Wenn der PeerName nicht aufgelöst werden kann (z. B. wird der Peername nicht veröffentlicht), wird eine PeerToPeerException ausgelöst.

Für jede Resolve Methode gibt es eine entsprechende ResolveAsync Methode. Ihre Parameterlisten sind identisch, mit der Ausnahme, dass die ResolveAsync-Methode ein Systemtoken für die asynchrone Ereignisbehandlung enthält.

Das ResolveCompleted Ereignis wird ausgelöst, wenn der Auflösungsvorgang fehlerhaft abgeschlossen oder abgebrochen wird.

Gilt für:

Resolve(PeerName, Cloud)

Löst den angegebenen PeerName in der angegebenen Cloud auf.

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

Parameter

peerName
PeerName

Der aufzulösende PeerName.

cloud
Cloud

Die Cloud, in der der Peername aufgelöst werden soll.

Gibt zurück

Eine PeerNameRecordCollection, die alle Peernamensdatensätze enthält (als PeerNameRecord-Objekte dargestellt), die dem angegebenen Peernamen zugeordnet sind. Bei ungesicherten Peernamen kann der gleiche PeerName von mehreren Benutzern in derselben Cloud registriert werden und unterschiedlichen Endpunkten zugeordnet werden.

Ausnahmen

Der peerName-Parameter ist auf null festgelegt.

Der angegebene Peername kann nicht aufgelöst werden.

Hinweise

Wenn der PeerName nicht aufgelöst werden kann (d. h. der Peername wird nicht veröffentlicht), wird eine PeerToPeerException ausgelöst.

Bei nicht gesicherten Peernamen kann derselbe Name von verschiedenen Peers in derselben Cloud registriert (und verschiedenen Endpunkten zugeordnet) werden.

Für jede Resolve Methode gibt es eine entsprechende ResolveAsync Methode. Ihre Parameterlisten sind identisch, mit der Ausnahme, dass die ResolveAsync-Methode ein Systemtoken für die asynchrone Ereignisbehandlung enthält.

Wenn der Cloud Parameter istnull, verwendet die AvailablePeerNameResolver -Verknüpfung zum Ausfüllen von Name, Scopeund ScopeId.

Das ResolveCompleted Ereignis wird ausgelöst, wenn der Auflösungsvorgang fehlerhaft abgeschlossen oder abgebrochen wird.

Gilt für:

Resolve(PeerName, Cloud, Int32)

Löst den angegebenen PeerName in der angegebenen Cloud auf und gibt nicht mehr als die angegebene Anzahl von PeerNameRecord-Objekten zurück.

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

Parameter

peerName
PeerName

Der aufzulösende PeerName.

cloud
Cloud

Die Cloud, in der der peerName aufgelöst werden soll.

maxRecords
Int32

Die maximale Anzahl von Peernamensdatensatz-Objekten, die aus der angegebenen Wolke für den angegebenen peerName abgerufen werden sollen.

Gibt zurück

Eine PeerNameRecordCollection, deren Größe kleiner oder gleich der mit maxRecords angegebenen Anzahl von Einträgen ist. Diese Auflistung enthält Peernamensdatensätze, die dem aufgelösten PeerName zugeordnet sind.

Attribute

Ausnahmen

Der peerName-Parameter ist auf null festgelegt.

Der maxRecords-Parameter ist kleiner oder gleich 0 (null).

Der angegebene Peername kann nicht aufgelöst werden.

Hinweise

Bei nicht gesicherten Peernamen kann derselbe Name von verschiedenen Peers in derselben Cloud registriert (und verschiedenen Endpunkten zugeordnet) werden. Wenn der Peername nicht aufgelöst werden kann, wird eine PeerToPeerException ausgelöst.

Für jede Resolve Methode gibt es eine entsprechende ResolveAsync Methode. Ihre Parameterlisten sind identisch, mit der Ausnahme, dass die ResolveAsync-Methode ein Systemtoken für die asynchrone Ereignisbehandlung enthält.

Wenn der Cloud Parameter istnull, verwendet die AvailablePeerNameResolver -Verknüpfung zum Ausfüllen von Name, Scopeund ScopeId.

Das ResolveCompleted Ereignis wird ausgelöst, wenn der Auflösungsvorgang fehlerhaft abgeschlossen oder abgebrochen wird.

Gilt für: