Udostępnij za pośrednictwem


PeerNameResolver.Resolve Metoda

Definicja

PeerName Rozpoznaje obiekt PeerNameRecord przy użyciu protokołu PNRP.

Przeciążenia

Resolve(PeerName)

Rozwiązuje problem określony PeerName we wszystkich chmurach znanych elementom równorzędnym wywołującym.

Resolve(PeerName, Int32)

Rozpoznaje określoną nazwę elementu równorzędnego we wszystkich chmurach znanych wywołującej komunikacji równorzędnej, zwracając nie więcej niż określoną liczbę PeerNameRecord obiektów.

Resolve(PeerName, Cloud)

Rozwiązuje określony PeerName w określonym Cloudelemecie .

Resolve(PeerName, Cloud, Int32)

Rozpoznaje określony PeerName w określonym Cloudobiekcie , zwracając nie więcej niż określoną liczbę PeerNameRecord obiektów.

Uwagi

Ta metoda kojarzy nazwy równorzędne z chmurami. PeerNameResolver Wywołanie metody jest podobne do wywoływania Resolve metody dla każdego rekordu nazwy elementu równorzędnego w elemencie PeerNameRecordCollection. Należy pamiętać, że użycie metody Resolve dla pojedynczego rekordu nazwy równorzędnej nie powoduje unieważnienia rozpoznawania wielu nazw równorzędnych.

Dla każdej Resolve metody istnieje równoważna ResolveAsync metoda. Są one identyczne w parametrach, które są przekazywane, z wyjątkiem tego, że metoda ResolveAsync zawiera token systemowy na liście parametrów do obsługi zdarzeń asynchronicznych.

Cloud Jeśli parametr nie zostanie podany, metoda używa skrótu Available do wypełniania parametrów chmury. Jeśli brakuje parametru maxRecords , wartość domyślna zero powoduje ArgumentOutOfRangeException zgłoszenie wyjątku.

To zdarzenie zostanie również zgłoszone, jeśli operacja rozwiązywania zakończy się w błędzie lub zostanie anulowana.

Resolve(PeerName)

Rozwiązuje problem określony PeerName we wszystkich chmurach znanych elementom równorzędnym wywołującym.

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

Element PeerName do rozwiązania.

Zwraca

Element PeerNameRecordCollection zawierający wszystkie rekordy nazw elementów równorzędnych (reprezentowane jako PeerNameRecord obiekty) skojarzone z określoną nazwą elementu równorzędnego. W przypadku niezabezpieczonych nazw równorzędnych te same PeerName nazwy mogą być zarejestrowane przez różnych użytkowników w tym samym Cloudobiekcie i skojarzone z różnymi punktami końcowymi.

Wyjątki

Parametr peerName jest ustawiony na nullwartość .

Nie można rozpoznać określonej nazwy elementu równorzędnego.

Przykłady

Poniższy przykład kodu ilustruje sposób rozwiązywania problemu opublikowanego PeerName w dowolnym pliku 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);
        }
    }
}

Uwagi

Ta metoda kojarzy nazwę równorzędną z chmurami. Wszystkie chmury są odpytywane dla obiektu PeerName. Jeśli nie można rozpoznać nazwy elementu równorzędnego lub jest to null, PeerToPeerException jest zgłaszany.

W przypadku niezabezpieczonych nazw elementów równorzędnych można zarejestrować (i skojarzyć je z różnymi punktami końcowymi) przez różne elementy równorzędne w tej samej chmurze.

PeerNameResolver Wywołanie metody jest podobne do wywoływania Resolve metody dla każdego rekordu nazwy elementu równorzędnego w elemencie PeerNameRecordCollection. Należy pamiętać, że użycie metody Resolve dla pojedynczego rekordu nazwy równorzędnej nie powoduje unieważnienia rozpoznawania wielu nazw równorzędnych.

Dla każdej Resolve metody istnieje równoważna ResolveAsync metoda. Ich listy parametrów są identyczne, z tą różnicą, że metoda ResolveAsync zawiera token systemowy do obsługi zdarzeń asynchronicznych.

Cloud Jeśli parametr nie zostanie podany, metoda używa skrótu Available do wypełniania parametrów chmury.

Zdarzenie ResolveCompleted zostanie podniesione, jeśli operacja rozwiązywania zakończy się w błędzie lub zostanie anulowana.

Zobacz też

Dotyczy

Resolve(PeerName, Int32)

Rozpoznaje określoną nazwę elementu równorzędnego we wszystkich chmurach znanych wywołującej komunikacji równorzędnej, zwracając nie więcej niż określoną liczbę PeerNameRecord obiektów.

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

Element PeerName do rozwiązania.

maxRecords
Int32

Maksymalna liczba PeerNameRecord obiektów do uzyskania ze wszystkich Cloud obiektów dla podanego elementu peerName.

Zwraca

Rozmiar PeerNameRecordCollection , którego rozmiar jest mniejszy lub równy maxRecords wpisom. Ta kolekcja zawiera rekordy nazw elementów równorzędnych skojarzonych z PeerName rozpoznaną nazwą.

Wyjątki

Parametr peerName jest ustawiony na nullwartość .

Parametr maxRecords jest mniejszy lub równy zero.

Nie można rozpoznać podanej nazwy elementu równorzędnego.

Uwagi

Ta metoda kojarzy nazwę równorzędną z chmurami. Wszystkie chmury są odpytywane pod kątem nazwy elementu równorzędnego. W przypadku niezabezpieczonych nazw równorzędnych ta sama nazwa elementu równorzędnego może być zarejestrowana przez różnych użytkowników w tym samym Cloudelemencie i skojarzona z różnymi punktami końcowymi. PeerName Jeśli nie można rozpoznać elementu (na przykład nazwa elementu równorzędnego nie zostanie opublikowana) PeerToPeerException zostanie zgłoszony.

Dla każdej Resolve metody istnieje równoważna ResolveAsync metoda. Ich listy parametrów są identyczne, z tą różnicą, że metoda ResolveAsync zawiera token systemowy do obsługi zdarzeń asynchronicznych.

Zdarzenie ResolveCompleted zostanie podniesione, jeśli operacja rozwiązywania zakończy się w błędzie lub zostanie anulowana.

Dotyczy

Resolve(PeerName, Cloud)

Rozwiązuje określony PeerName w określonym Cloudelemecie .

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

Element PeerName do rozwiązania.

cloud
Cloud

Element Cloud , w którym ma zostać rozpoznana nazwa elementu równorzędnego.

Zwraca

PeerNameRecordCollection zawiera wszystkie rekordy nazw elementów równorzędnych (reprezentowane jako PeerNameRecord obiekty) skojarzone z określoną nazwą elementu równorzędnego. W przypadku niezabezpieczonych nazw równorzędnych te same PeerName nazwy mogą być zarejestrowane przez różnych użytkowników w tym samym Cloudobiekcie i skojarzone z różnymi punktami końcowymi.

Wyjątki

Parametr peerName jest ustawiony na nullwartość .

Nie można rozpoznać podanej nazwy elementu równorzędnego.

Uwagi

PeerName Jeśli nie można rozpoznać elementu (oznacza to, że nazwa elementu równorzędnego nie zostanie opublikowana) PeerToPeerException zostanie zgłoszony.

W przypadku niezabezpieczonych nazw elementów równorzędnych można zarejestrować (i skojarzyć je z różnymi punktami końcowymi) przez różne elementy równorzędne w tej samej chmurze.

Dla każdej Resolve metody istnieje równoważna ResolveAsync metoda. Ich listy parametrów są identyczne, z tą różnicą, że metoda ResolveAsync zawiera token systemowy do obsługi zdarzeń asynchronicznych.

Cloud Jeśli parametr to null, PeerNameResolver używa skrótu Available do wypełnienia Namewartości , Scopei ScopeId.

Zdarzenie ResolveCompleted zostanie podniesione, jeśli operacja rozwiązywania zakończy się w błędzie lub zostanie anulowana.

Dotyczy

Resolve(PeerName, Cloud, Int32)

Rozpoznaje określony PeerName w określonym Cloudobiekcie , zwracając nie więcej niż określoną liczbę PeerNameRecord obiektów.

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

Element PeerName do rozwiązania.

cloud
Cloud

Element Cloud , w którym należy rozpoznać element peerName.

maxRecords
Int32

Maksymalna liczba obiektów rekordów nazw równorzędnych, które mają być uzyskiwane z określonej chmury dla określonego peerNameelementu .

Zwraca

Rozmiar PeerNameRecordCollection , którego rozmiar jest mniejszy lub równy maxRecords wpisom. Ta kolekcja zawiera rekordy nazw elementów równorzędnych skojarzonych z PeerName rozpoznaną nazwą.

Atrybuty

Wyjątki

Parametr peerName jest ustawiony na nullwartość .

Parametr maxRecords jest mniejszy lub równy zero.

Nie można rozpoznać podanej nazwy elementu równorzędnego.

Uwagi

W przypadku niezabezpieczonych nazw elementów równorzędnych można zarejestrować (i skojarzyć je z różnymi punktami końcowymi) przez różne elementy równorzędne w tej samej chmurze. Jeśli nie można rozpoznać nazwy elementu równorzędnego, PeerToPeerException zostanie zgłoszony.

Dla każdej Resolve metody istnieje równoważna ResolveAsync metoda. Ich listy parametrów są identyczne, z tą różnicą, że metoda ResolveAsync zawiera token systemowy do obsługi zdarzeń asynchronicznych.

Cloud Jeśli parametr to null, PeerNameResolver używa skrótu Available do wypełnienia Namewartości , Scopei ScopeId.

Zdarzenie ResolveCompleted zostanie podniesione, jeśli operacja rozwiązywania zakończy się w błędzie lub zostanie anulowana.

Dotyczy