Поделиться через


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

Параметры

peerName
PeerName

Имя PeerName для разрешения.

Возвращаемое значение

Объект PeerNameRecordCollection, содержащий все записи одноранговых узелов (представленных объектами PeerNameRecord), связанными с указанным именем однорангового узла. При использовании незащищенных имен одноранговых узелов один и тот же объект PeerName может быть зарегистрирован одновременно разными пользователями в одном облаке Cloud и может быть связан с разными конечными точками.

Исключения

Значение параметра peerNamenull.

Невозможно разрешить указанное имя однорангового узла.

Примеры

В следующем примере кода показано, как разрешить объект , опубликованный в любом 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

Параметры

peerName
PeerName

Имя PeerName для разрешения.

maxRecords
Int32

Максимальное количество объектов PeerNameRecord для получения из всех объектов Cloud для предоставленного имени однорангового узла peerName.

Возвращаемое значение

Объект PeerNameRecordCollection, содержащий не более maxRecords записей. Эта коллекция содержит записи имен одноранговых узелов, связанные с объектом PeerName, для которого выполнялось разрешение имени узла.

Исключения

Значение параметра peerNamenull.

Значение параметра maxRecords меньше или равно нулю.

Невозможно разрешить указанное имя однорангового узла.

Комментарии

Этот метод связывает имя однорангового узла с облаками. Во всех облаках запрашивается имя однорангового узла. Для незащищенных имен одноранговых узлов одноранговый узел может быть зарегистрировано разными пользователями в одном и том же Cloudи связано с разными конечными точками. PeerName Если не удается разрешить (например, имя однорангового узла не опубликовано), PeerToPeerException возникает исключение .

Для каждого Resolve метода существует эквивалентный ResolveAsync метод. Их списки параметров идентичны, за исключением того, что метод ResolveAsync включает системный маркер для асинхронной обработки событий.

Событие ResolveCompleted будет возникать, если операция разрешения завершится по ошибке или будет отменена.

Применяется к

Resolve(PeerName, Cloud)

Выполняет разрешение указанного объекта 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

Параметры

peerName
PeerName

Имя PeerName для разрешения.

cloud
Cloud

Объект облака Cloud, в котором требуется выполнить разрешение имени однорангового узла.

Возвращаемое значение

Объект PeerNameRecordCollection, содержащий все записи имен одноранговых узелов (представленных объектами PeerNameRecord), связанные с заданным именем однорангового узла. При использовании незащищенных имен одноранговых узелов один и тот же объект PeerName может быть зарегистрирован одновременно разными пользователями в одном облаке Cloud и может быть связан с разными конечными точками.

Исключения

Значение параметра peerNamenull.

Невозможно разрешить указанное имя однорангового узла.

Комментарии

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

Параметры

peerName
PeerName

Имя PeerName для разрешения.

cloud
Cloud

В Cloud необходимо разрешить peerName.

maxRecords
Int32

Максимальное количество объектов записей имен одноранговых узелов, получаемых из указанного облака для заданного имени узла peerName.

Возвращаемое значение

Объект PeerNameRecordCollection, содержащий не более maxRecords записей. Эта коллекция содержит записи имен одноранговых узелов, связанные с объектом PeerName, для которого выполнялось разрешение имени узла.

Атрибуты

Исключения

Значение параметра peerNamenull.

Значение параметра maxRecords меньше или равно нулю.

Невозможно разрешить указанное имя однорангового узла.

Комментарии

Для незащищенных имен одноранговых узлов одно и то же имя может быть зарегистрировано (и связано с разными конечными точками) разными одноранговыми узлами в одном облаке. Если не удается разрешить имя однорангового узла, PeerToPeerException возникает исключение .

Для каждого Resolve метода существует эквивалентный ResolveAsync метод. Их списки параметров идентичны, за исключением того, что метод ResolveAsync включает системный маркер для асинхронной обработки событий.

Cloud Если параметр имеет значение null, PeerNameResolver использует ярлык для Available заполнения Name, Scopeи ScopeId.

Событие ResolveCompleted будет возникать, если операция разрешения завершится по ошибке или будет отменена.

Применяется к