PeerNameResolver.Resolve 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用 PNRP 協定將物件解析 PeerName 為 a PeerNameRecord 。
多載
| 名稱 | Description |
|---|---|
| Resolve(PeerName) |
在所有呼叫對端已知的雲端中解析指定 PeerName 問題。 |
| Resolve(PeerName, Int32) |
解析所有呼叫對等端已知雲中指定的對等名稱,回傳的物件數量不超過指定數量 PeerNameRecord 。 |
| Resolve(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
參數
傳回
PeerNameRecordCollection A 包含所有與指定對等名稱相關的節點名稱記錄(以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則拋出 an 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
參數
- maxRecords
- Int32
從所有物件PeerNameRecord中可獲得Cloud的最大物件數量peerName。
傳回
PeerNameRecordCollection A的大小小於或等maxRecords於元素數。 此收藏包含與已解決問題 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雲端,可取得的最大同儕名稱記錄物件數量。
傳回
PeerNameRecordCollection A的大小小於或等maxRecords於元素數。 此收藏包含與已解決問題 PeerName 相關的同儕姓名紀錄。
- 屬性
例外狀況
peerName 參數設定為 null。
maxRecords參數小於或等於零。
所提供的對等名稱無法解析。
備註
對於不安全的對等節點名稱,同一名稱可以被同一雲端內的不同節點註冊(並關聯到不同的端點)。 若無法解析對等名稱,則拋出 an PeerToPeerException 。
每種 Resolve 方法都有等價 ResolveAsync 的方法。 它們的參數列表相同,但 ResolveAsync 方法包含用於非同步事件處理的系統標記。
若 Cloud 參數為 null,則 PeerNameResolver 會使用 Available 捷徑填入 Name、 Scope和 ScopeId。
ResolveCompleted若解析操作錯誤完成或被取消,事件將被觸發。