PeerNameResolver.Resolve Metoda

Definice

Přeloží PeerName objekt na PeerNameRecord objekt pomocí protokolu PNRP.

Přetížení

Resolve(PeerName)

Vyřeší zadanou PeerName hodnotu ve všech cloudech známých volajícímu partnerskému vztahu.

Resolve(PeerName, Int32)

Přeloží zadaný název partnerského vztahu ve všech cloudech, které volající partner zná, a vrátí maximálně zadaný počet PeerNameRecord objektů.

Resolve(PeerName, Cloud)

Vyřeší hodnotu zadanou PeerName v zadaném Cloudparametru .

Resolve(PeerName, Cloud, Int32)

PeerName Vyřeší zadaný v zadaném Cloudobjektu a vrátí maximálně zadaný počet PeerNameRecord objektů.

Poznámky

Tato metoda přidruží názvy partnerských uzlů ke cloudům. PeerNameResolver Volání metody je podobné volání Resolve metody pro každý záznam názvu partnera v PeerNameRecordCollection. Všimněte si, že použití metody Resolve u záznamu názvu jednotlivého partnerského vztahu nedochází ke zneplatnění překladu více názvů partnerských uzlů.

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jsou identické v parametrech, které jsou předány, s výjimkou toho, že ResolveAsync metoda obsahuje systémový token v seznamu parametrů pro asynchronní zpracování událostí.

Pokud parametr Cloud není zadaný, metoda pomocí Available zástupce vyplní parametry cloudu. maxRecords Pokud parametr chybí, výchozí hodnota nula způsobí výjimkuArgumentOutOfRangeException.

Tato událost bude vyvolána také v případě, že se operace vyřešení dokončí omylem nebo je zrušena.

Resolve(PeerName)

Vyřeší zadanou PeerName hodnotu ve všech cloudech známých volajícímu partnerskému vztahu.

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

Parametry

peerName
PeerName

Chcete-li PeerName vyřešit.

Návraty

A PeerNameRecordCollection , který obsahuje všechny záznamy názvů partnerských uzlů (reprezentované jako PeerNameRecord objekty) přidružené k zadanému názvu partnerského vztahu. V případě nezabezpečených názvů partnerských uzlů můžou stejný PeerName název zaregistrovat různí uživatelé ve stejné Clouda přidružené k různým koncovým bodům.

Výjimky

Parametr peerName je nastavený na null.

Zadaný název partnerského vztahu nelze přeložit.

Příklady

Následující příklad kódu ukazuje, jak vyřešit publikovaný v PeerName libovolném 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 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);
        }
    }
}

Poznámky

Tato metoda přidruží název partnerského vztahu ke cloudům. Dotazuje se na všechny cloudy pro PeerName. Pokud se název partnerského vztahu nedá přeložit nebo je null, vyvolá se PeerToPeerException chyba .

V případě nezabezpečených názvů partnerských uzlů můžou stejný název zaregistrovat (a přidružit k různým koncovým bodům) různé partnerské vztahy ve stejném cloudu.

PeerNameResolver Volání metody je podobné volání Resolve metody pro každý záznam názvu partnera v PeerNameRecordCollection. Všimněte si, že použití metody Resolve u záznamu názvu jednotlivého partnerského vztahu nedochází ke zneplatnění překladu více názvů partnerských uzlů.

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jejich seznamy parametrů jsou identické s tím rozdílem, že metoda ResolveAsync obsahuje systémový token pro asynchronní zpracování událostí.

Pokud parametr Cloud není zadaný, metoda pomocí Available zástupce vyplní parametry cloudu.

Událost ResolveCompleted se vyvolá, pokud se operace vyřešení dokončí omylem nebo se zruší.

Viz také

Platí pro

Resolve(PeerName, Int32)

Přeloží zadaný název partnerského vztahu ve všech cloudech, které volající partner zná, a vrátí maximálně zadaný počet PeerNameRecord objektů.

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

Parametry

peerName
PeerName

Chcete-li PeerName vyřešit.

maxRecords
Int32

Maximální počet objektů, které PeerNameRecord se mají získat ze všech Cloud objektů zadaného objektu peerName.

Návraty

Hodnota PeerNameRecordCollection , jejíž velikost je menší nebo rovna maxRecords položkám. Tato kolekce obsahuje záznamy názvů partnerských uzlů přidružené k PeerName přeloženým záznamům.

Výjimky

Parametr peerName je nastavený na null.

Parametr maxRecords je menší než nebo roven nule.

Zadaný název partnerského vztahu nelze přeložit.

Poznámky

Tato metoda přidruží název partnerského vztahu ke cloudům. Všechny cloudy se dotazují na název partnera. V případě nezabezpečených názvů partnerských uzlů můžou stejný název partnerského vztahu zaregistrovat různí uživatelé ve stejném Clouda přidružený k různým koncovým bodům. PeerName Pokud nelze přeložit (například název partnerského vztahu není publikován), PeerToPeerException je vyvolán.

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jejich seznamy parametrů jsou identické s tím rozdílem, že metoda ResolveAsync obsahuje systémový token pro asynchronní zpracování událostí.

Událost ResolveCompleted se vyvolá, pokud se operace vyřešení dokončí omylem nebo se zruší.

Platí pro

Resolve(PeerName, Cloud)

Vyřeší hodnotu zadanou PeerName v zadaném Cloudparametru .

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

Parametry

peerName
PeerName

Chcete-li PeerName vyřešit.

cloud
Cloud

Název Cloud , ve kterém se má přeložit název partnerského vzájemného vztahu.

Návraty

PeerNameRecordCollection , který obsahuje všechny záznamy názvů partnerských uzlů (reprezentované jako PeerNameRecord objekty) přidružené k zadanému názvu partnerského vztahu. V případě nezabezpečených názvů partnerských uzlů můžou stejný PeerName název zaregistrovat různí uživatelé ve stejné Clouda přidružené k různým koncovým bodům.

Výjimky

Parametr peerName je nastavený na null.

Zadaný název partnerského vztahu nelze přeložit.

Poznámky

PeerName Pokud nejde přeložit (to znamená, že název partnerského vztahu není publikovaný), PeerToPeerException vyvolá se chyba .

V případě nezabezpečených názvů partnerských uzlů můžou stejný název zaregistrovat (a přidružit k různým koncovým bodům) různé partnerské vztahy ve stejném cloudu.

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jejich seznamy parametrů jsou identické s tím rozdílem, že metoda ResolveAsync obsahuje systémový token pro asynchronní zpracování událostí.

Cloud Pokud je nullparametr , PeerNameResolver použije klávesovou zkratku NameAvailable k vyplnění , Scopea ScopeId.

Událost ResolveCompleted se vyvolá, pokud se operace vyřešení dokončí omylem nebo se zruší.

Platí pro

Resolve(PeerName, Cloud, Int32)

PeerName Vyřeší zadaný v zadaném Cloudobjektu a vrátí maximálně zadaný počet PeerNameRecord objektů.

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

Parametry

peerName
PeerName

Chcete-li PeerName vyřešit.

cloud
Cloud

Ve Cloud kterém se má vyřešit peerName.

maxRecords
Int32

Maximální počet objektů záznamu názvu partnerského vztahu, které se mají získat ze zadaného cloudu pro zadaný peerName.

Návraty

Hodnota PeerNameRecordCollection , jejíž velikost je menší nebo rovna maxRecords položkám. Tato kolekce obsahuje záznamy názvů partnerských uzlů přidružené k PeerName přeloženým záznamům.

Atributy

Výjimky

Parametr peerName je nastavený na null.

Parametr maxRecords je menší než nebo roven nule.

Zadaný název partnerského vztahu nelze přeložit.

Poznámky

V případě nezabezpečených názvů partnerských uzlů můžou stejný název zaregistrovat (a přidružit k různým koncovým bodům) různé partnerské vztahy ve stejném cloudu. Pokud název partnerského vztahu nelze přeložit, PeerToPeerException je vyvolán parametr .

Pro každou Resolve metodu existuje ekvivalentní ResolveAsync metoda. Jejich seznamy parametrů jsou identické s tím rozdílem, že metoda ResolveAsync obsahuje systémový token pro asynchronní zpracování událostí.

Cloud Pokud je nullparametr , PeerNameResolver použije klávesovou zkratku NameAvailable k vyplnění , Scopea ScopeId.

Událost ResolveCompleted se vyvolá, pokud se operace vyřešení dokončí omylem nebo se zruší.

Platí pro