PeerNameResolver.Resolve Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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
- maxRecords
- Int32
Número máximo de objetos PeerNameRecord que se deben obtener de todos los objetos Cloud para el peerName
proporcionado.
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)
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
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
- 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.