Share via


PeerNameResolver.Resolve Método

Definición

Resuelve un objeto PeerName como PeerNameRecord mediante el protocolo PNRP.

Sobrecargas

Resolve(PeerName)

Resuelve el objeto PeerName especificado en todas las nubes conocidas para el elemento del mismo nivel de la llamada.

Resolve(PeerName, Int32)

Resuelve el nombre del mismo nivel especificado en todas las nubes conocidas para el elemento del mismo nivel de la llamada y no devuelve más que el número especificado de objetos PeerNameRecord.

Resolve(PeerName, Cloud)

Resuelve la propiedad PeerName especificada en el objeto Cloud especificado.

Resolve(PeerName, Cloud, Int32)

Resuelve la propiedad PeerName especificada en el objeto Cloud especificado y no devuelve más que el número especificado de objetos PeerNameRecord.

Comentarios

Este método asocia nombres de mismo nivel a nubes. Llamar al PeerNameResolver método es similar a llamar al Resolve método para cada registro de nombre del mismo nivel en .PeerNameRecordCollection Tenga en cuenta que el uso del método Resolve en un registro de nombre del mismo nivel individual no invalida la resolución de varios nombres de mismo nivel.

Para cada Resolve método, hay un método equivalente ResolveAsync . Son idénticos en los parámetros que se pasan, excepto que el método ResolveAsync incluye un token del sistema en su lista de parámetros para el control de eventos asincrónicos.

Si no se proporciona el Cloud parámetro , el método usa el Available acceso directo para rellenar los parámetros de la nube. Si falta el maxRecords parámetro , el valor predeterminado de cero hace que se produzca una ArgumentOutOfRangeException excepción.

Este evento también se generará si la operación de resolución se completa en caso de error o se cancela.

Resolve(PeerName)

Resuelve el objeto PeerName especificado en todas las nubes conocidas para el elemento del mismo nivel de la llamada.

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

Parámetros

peerName
PeerName

PeerName que se va a resolver.

Devoluciones

PeerNameRecordCollection que contiene todos los registros de nombre del mismo nivel (representados como objetos PeerNameRecord) asociados al nombre del mismo nivel especificado. Para los nombres del mismo nivel no protegidos, diferentes usuarios pueden registrar el mismo objeto PeerName en el mismo objeto Cloud y asociarlo con extremos diferentes.

Excepciones

El parámetro peerName debe establecerse en null.

No se puede resolver el nombre del mismo nivel especificado.

Ejemplos

En el ejemplo de código siguiente se muestra cómo resolver un PeerName objeto publicado en cualquier 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);
        }
    }
}

Comentarios

Este método asocia un nombre del mismo nivel a las nubes. Se consultan todas las nubes para .PeerName Si el nombre del mismo nivel no se puede resolver o es null, se produce una PeerToPeerException excepción .

En el caso de los nombres del mismo nivel no seguros, el mismo nombre se puede registrar (y asociar con distintos puntos de conexión) por diferentes pares dentro de la misma nube.

Llamar al PeerNameResolver método es similar a llamar al Resolve método para cada registro de nombre del mismo nivel en .PeerNameRecordCollection Tenga en cuenta que el uso del método Resolve en un registro de nombre del mismo nivel individual no invalida la resolución de varios nombres de mismo nivel.

Para cada Resolve método, hay un método equivalente ResolveAsync . Sus listas de parámetros son idénticas, salvo que el método ResolveAsync incluye un token del sistema para el control de eventos asincrónicos.

Si no se proporciona el Cloud parámetro , el método usa el Available acceso directo para rellenar los parámetros de la nube.

El ResolveCompleted evento se generará si la operación de resolución se completa en error o se cancela.

Consulte también

Se aplica a

Resolve(PeerName, Int32)

Resuelve el nombre del mismo nivel especificado en todas las nubes conocidas para el elemento del mismo nivel de la llamada y no devuelve más que el número especificado de objetos 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

Parámetros

peerName
PeerName

PeerName que se va a resolver.

maxRecords
Int32

Número máximo de objetos PeerNameRecord que se deben obtener de todos los objetos Cloud para el peerNameproporcionado.

Devoluciones

PeerNameRecordCollection cuyo tamaño es menor o igual que las entradas de maxRecords. Esta colección contiene registros de nombre del mismo nivel asociados al objeto PeerName que se resolvió.

Excepciones

El parámetro peerName debe establecerse en null.

El parámetro maxRecords es menor o igual que cero.

El nombre del mismo nivel proporcionado no se puede resolver.

Comentarios

Este método asocia un nombre del mismo nivel a las nubes. Todas las nubes se consultan para el nombre del mismo nivel. En el caso de los nombres del mismo nivel no seguros, el mismo nombre del mismo nivel se puede registrar por distintos usuarios en el mismo Cloudy asociados a diferentes puntos de conexión. PeerName Si no se puede resolver (por ejemplo, no se publica el nombre del mismo nivel), se produce una PeerToPeerException excepción .

Para cada Resolve método, hay un método equivalente ResolveAsync . Sus listas de parámetros son idénticas, salvo que el método ResolveAsync incluye un token del sistema para el control de eventos asincrónicos.

El ResolveCompleted evento se generará si la operación de resolución se completa en error o se cancela.

Se aplica a

Resolve(PeerName, Cloud)

Resuelve la propiedad PeerName especificada en el objeto Cloud especificado.

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

Parámetros

peerName
PeerName

PeerName que se va a resolver.

cloud
Cloud

Cloud en que se va a resolver el nombre del mismo nivel.

Devoluciones

PeerNameRecordCollection que contiene todos los registros de nombre del mismo nivel (representados como objetos PeerNameRecord) asociados al nombre del mismo nivel especificado. Para los nombres del mismo nivel no protegidos, diferentes usuarios pueden registrar el mismo objeto PeerName en el mismo objeto Cloud y asociarlo con extremos diferentes.

Excepciones

El parámetro peerName debe establecerse en null.

El nombre del mismo nivel proporcionado no se puede resolver.

Comentarios

Si no PeerName se puede resolver (es decir, no se publica el nombre del mismo nivel), se produce una PeerToPeerException excepción .

En el caso de los nombres del mismo nivel no seguros, el mismo nombre se puede registrar (y asociar con distintos puntos de conexión) por diferentes pares dentro de la misma nube.

Para cada Resolve método, hay un método equivalente ResolveAsync . Sus listas de parámetros son idénticas, salvo que el método ResolveAsync incluye un token del sistema para el control de eventos asincrónicos.

Si el Cloud parámetro es null, PeerNameResolver usa el Available acceso directo para rellenar , NameScopey ScopeId.

El ResolveCompleted evento se generará si la operación de resolución se completa en error o se cancela.

Se aplica a

Resolve(PeerName, Cloud, Int32)

Resuelve la propiedad PeerName especificada en el objeto Cloud especificado y no devuelve más que el número especificado de objetos 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

Parámetros

peerName
PeerName

PeerName que se va a resolver.

cloud
Cloud

Cloud en el que se va a resolver peerName.

maxRecords
Int32

Número máximo de objetos de registro de nombre del mismo nivel que se debe obtener de la nube especificada para el peerName especificado.

Devoluciones

PeerNameRecordCollection cuyo tamaño es menor o igual que las entradas de maxRecords. Esta colección contiene registros de nombre del mismo nivel asociados al objeto PeerName que se resolvió.

Atributos

Excepciones

El parámetro peerName debe establecerse en null.

El parámetro maxRecords es menor o igual que cero.

El nombre del mismo nivel proporcionado no se puede resolver.

Comentarios

En el caso de los nombres del mismo nivel no seguros, el mismo nombre se puede registrar (y asociar con distintos puntos de conexión) por diferentes pares dentro de la misma nube. Si no se puede resolver el nombre del mismo nivel, se produce una PeerToPeerException excepción .

Para cada Resolve método, hay un método equivalente ResolveAsync . Sus listas de parámetros son idénticas, salvo que el método ResolveAsync incluye un token del sistema para el control de eventos asincrónicos.

Si el Cloud parámetro es null, PeerNameResolver usa el Available acceso directo para rellenar , NameScopey ScopeId.

El ResolveCompleted evento se generará si la operación de resolución se completa en error o se cancela.

Se aplica a