PeerNameResolver.Resolve Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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) | |
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
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
- 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)
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
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 null
parametr , 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
- 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 null
parametr , 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ší.