PeerNameResolver.Resolve 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用 PNRP 协议将 PeerName 对象解析为 PeerNameRecord。
重载
Resolve(PeerName) |
解析调用对等方已知的所有群中指定的 PeerName。 |
Resolve(PeerName, Int32) |
解析调用对等方已知的所有群中的指定对等名称,并返回不超过指定数目的 PeerNameRecord 对象。 |
Resolve(PeerName, Cloud) | |
Resolve(PeerName, Cloud, Int32) |
解析指定 PeerName 中的指定 Cloud,并返回不超过指定数目的 PeerNameRecord 对象。 |
注解
此方法将对等名称关联到云。 PeerNameResolver调用 方法类似于为 中的每个PeerNameRecordCollection对等名称记录调用 Resolve 方法。 请注意,对单个对等名称记录使用 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
。
指定的对等名称无法解析。
示例
下面的代码示例演示如何解析 PeerName 任何 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);
}
}
}
注解
此方法将对等名称关联到云。 所有云都查询 。PeerName 如果无法解析对等名称或 为 null
, PeerToPeerException 则会引发 。
对于不安全的对等名称,同一名称可以注册 (,并与同一云中不同对等方) 的不同终结点相关联。
PeerNameResolver调用 方法类似于为 中的每个PeerNameRecordCollection对等名称记录调用 Resolve 方法。 请注意,对单个对等名称记录使用 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 中获取提供的 peerName
的 Cloud 对象的最大数目。
返回
大小小于或等于 maxRecords
条目的 PeerNameRecordCollection。 此集合包含与解析的 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
的最大对等名称记录对象数。
返回
大小小于或等于 maxRecords
条目的 PeerNameRecordCollection。 此集合包含与解析的 PeerName 关联的对等名称记录。
- 属性
例外
peerName
参数设置为 null
。
maxRecords
参数小于或等于零。
提供的对等名称无法解析。
注解
对于不安全的对等名称,同一名称可以注册 (,并与同一云中不同对等方) 的不同终结点相关联。 如果无法解析对等名称, PeerToPeerException 则会引发 。
对于每个 Resolve 方法,都有一个等效 ResolveAsync 的方法。 它们的参数列表是相同的,只是 ResolveAsync 方法包含用于异步事件处理的系统令牌。
Cloud如果 参数为 null
,则 PeerNameResolver 使用Available快捷方式填充 Name、 Scope和 ScopeId。
ResolveCompleted如果解析操作在错误中完成或被取消,将引发 该事件。