PeerNameResolver.Resolve Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет разрешение объекта PeerName в объект PeerNameRecord с помощью протокола PNRP.
Перегрузки
Resolve(PeerName) |
Разрешает указанное имя однорангового узла PeerName во всех облаках, известных вызывающему одноранговому узлу. |
Resolve(PeerName, Int32) |
Разрешает указанное имя однорангового узла во всех облаках, известных вызывающему узлу, возвращая не больше заданного количества объектов PeerNameRecord. |
Resolve(PeerName, Cloud) |
Выполняет разрешение указанного объекта PeerName в указанном облаке Cloud. |
Resolve(PeerName, Cloud, Int32) |
Выполняет разрешение для указанного объекта PeerName в указанном облаке Cloud, возвращая не более заданного количества объектов PeerNameRecord. |
Комментарии
Этот метод связывает имена одноранговых узлов с облаками. PeerNameResolver Вызов метода аналогичен вызову метода для каждой Resolve записи имени однорангового PeerNameRecordCollectionузла в . Обратите внимание, что использование метода Resolve для записи имени отдельного однорангового узла не делает недействительным разрешение нескольких имен одноранговых узлов.
Для каждого Resolve метода существует эквивалентный ResolveAsync метод. Они идентичны в передаваемых параметрах, за исключением того, что метод ResolveAsync включает системный токен в список параметров для асинхронной обработки событий.
Cloud Если параметр не указан, метод использует Available ярлык для заполнения параметров облака.
maxRecords
Если параметр отсутствует, значение по умолчанию ноль вызывает ArgumentOutOfRangeException исключение.
Это событие также возникает, если операция разрешения завершается по ошибке или отменена.
Resolve(PeerName)
Разрешает указанное имя однорангового узла PeerName во всех облаках, известных вызывающему одноранговому узлу.
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
Параметры
Возвращаемое значение
Объект PeerNameRecordCollection, содержащий все записи одноранговых узелов (представленных объектами PeerNameRecord), связанными с указанным именем однорангового узла. При использовании незащищенных имен одноранговых узелов один и тот же объект PeerName может быть зарегистрирован одновременно разными пользователями в одном облаке Cloud и может быть связан с разными конечными точками.
Исключения
Значение параметра peerName
— null
.
Невозможно разрешить указанное имя однорангового узла.
Примеры
В следующем примере кода показано, как разрешить объект , опубликованный в любом Cloudобъекте PeerName .
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);
}
}
}
Комментарии
Этот метод связывает имя однорангового узла с облаками. Все облака запрашиваются для PeerName. Если имя однорангового узла не может быть разрешено или имеет null
значение , PeerToPeerException возникает исключение .
Для незащищенных имен одноранговых узлов одно и то же имя может быть зарегистрировано (и связано с разными конечными точками) разными одноранговыми узлами в одном облаке.
PeerNameResolver Вызов метода аналогичен вызову метода для каждой Resolve записи имени однорангового PeerNameRecordCollectionузла в . Обратите внимание, что использование метода Resolve для записи имени отдельного однорангового узла не делает недействительным разрешение нескольких имен одноранговых узлов.
Для каждого Resolve метода существует эквивалентный ResolveAsync метод. Их списки параметров идентичны, за исключением того, что метод ResolveAsync включает системный маркер для асинхронной обработки событий.
Cloud Если параметр не указан, метод использует Available ярлык для заполнения параметров облака.
Событие ResolveCompleted будет возникать, если операция разрешения завершится по ошибке или будет отменена.
См. также раздел
Применяется к
Resolve(PeerName, Int32)
Разрешает указанное имя однорангового узла во всех облаках, известных вызывающему узлу, возвращая не больше заданного количества объектов 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
Параметры
- maxRecords
- Int32
Максимальное количество объектов PeerNameRecord для получения из всех объектов Cloud для предоставленного имени однорангового узла peerName
.
Возвращаемое значение
Объект PeerNameRecordCollection, содержащий не более maxRecords
записей. Эта коллекция содержит записи имен одноранговых узелов, связанные с объектом PeerName, для которого выполнялось разрешение имени узла.
Исключения
Значение параметра peerName
— null
.
Значение параметра maxRecords
меньше или равно нулю.
Невозможно разрешить указанное имя однорангового узла.
Комментарии
Этот метод связывает имя однорангового узла с облаками. Во всех облаках запрашивается имя однорангового узла. Для незащищенных имен одноранговых узлов одноранговый узел может быть зарегистрировано разными пользователями в одном и том же Cloudи связано с разными конечными точками. PeerName Если не удается разрешить (например, имя однорангового узла не опубликовано), PeerToPeerException возникает исключение .
Для каждого Resolve метода существует эквивалентный ResolveAsync метод. Их списки параметров идентичны, за исключением того, что метод ResolveAsync включает системный маркер для асинхронной обработки событий.
Событие ResolveCompleted будет возникать, если операция разрешения завершится по ошибке или будет отменена.
Применяется к
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
Параметры
Возвращаемое значение
Объект PeerNameRecordCollection, содержащий все записи имен одноранговых узелов (представленных объектами PeerNameRecord), связанные с заданным именем однорангового узла. При использовании незащищенных имен одноранговых узелов один и тот же объект PeerName может быть зарегистрирован одновременно разными пользователями в одном облаке Cloud и может быть связан с разными конечными точками.
Исключения
Значение параметра peerName
— null
.
Невозможно разрешить указанное имя однорангового узла.
Комментарии
PeerName Если не удается разрешить (то есть имя однорангового узла не опубликовано), PeerToPeerException создается исключение .
Для незащищенных имен одноранговых узлов одно и то же имя может быть зарегистрировано (и связано с разными конечными точками) разными одноранговыми узлами в одном облаке.
Для каждого Resolve метода существует эквивалентный ResolveAsync метод. Их списки параметров идентичны, за исключением того, что метод ResolveAsync включает системный маркер для асинхронной обработки событий.
Cloud Если параметр имеет значение null
, PeerNameResolver использует ярлык для Available заполнения Name, Scopeи ScopeId.
Событие ResolveCompleted будет возникать, если операция разрешения завершится по ошибке или будет отменена.
Применяется к
Resolve(PeerName, Cloud, Int32)
Выполняет разрешение для указанного объекта PeerName в указанном облаке Cloud, возвращая не более заданного количества объектов 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
Параметры
- maxRecords
- Int32
Максимальное количество объектов записей имен одноранговых узелов, получаемых из указанного облака для заданного имени узла peerName
.
Возвращаемое значение
Объект PeerNameRecordCollection, содержащий не более maxRecords
записей. Эта коллекция содержит записи имен одноранговых узелов, связанные с объектом PeerName, для которого выполнялось разрешение имени узла.
- Атрибуты
Исключения
Значение параметра peerName
— null
.
Значение параметра maxRecords
меньше или равно нулю.
Невозможно разрешить указанное имя однорангового узла.
Комментарии
Для незащищенных имен одноранговых узлов одно и то же имя может быть зарегистрировано (и связано с разными конечными точками) разными одноранговыми узлами в одном облаке. Если не удается разрешить имя однорангового узла, PeerToPeerException возникает исключение .
Для каждого Resolve метода существует эквивалентный ResolveAsync метод. Их списки параметров идентичны, за исключением того, что метод ResolveAsync включает системный маркер для асинхронной обработки событий.
Cloud Если параметр имеет значение null
, PeerNameResolver использует ярлык для Available заполнения Name, Scopeи ScopeId.
Событие ResolveCompleted будет возникать, если операция разрешения завершится по ошибке или будет отменена.