PeerNameResolver.Resolve 方法

定義

使用 PNRP 通訊協定,將 PeerName 物件解析成 PeerNameRecord

多載

Resolve(PeerName)

解析呼叫端對等電腦已知的所有 Cloud 中的特定 PeerName

Resolve(PeerName, Int32)

解析呼叫端對等電腦已知的所有 Cloud 中的特定對等名稱,並傳回指定數目範圍內的 PeerNameRecord 物件。

Resolve(PeerName, Cloud)

解析指定的 PeerName 中指定的 Cloud

Resolve(PeerName, Cloud, Int32)

解析指定的 PeerName 中指定的 Cloud,並傳回指定數目範圍內的 PeerNameRecord 物件。

備註

這個方法會將對等名稱與雲端產生關聯。 PeerNameResolver呼叫 方法類似於針對 中的每個PeerNameRecordCollection對等名稱記錄呼叫 Resolve 方法。 請注意,在個別對等名稱記錄上使用 Resolve 方法並不會使解析多個對等名稱失效。

對於每個 Resolve 方法,都有相等 ResolveAsync 的方法。 它們在傳遞的參數中完全相同,不同之處在於 ResolveAsync 方法在其參數清單中包含系統令牌以進行異步事件處理。

Cloud如果未提供 參數,方法會Available使用快捷方式填入雲端參數。 maxRecords如果遺漏 參數,預設值為零會導致ArgumentOutOfRangeException擲回例外狀況。

如果解決作業發生錯誤或取消,也會引發此事件。

Resolve(PeerName)

解析呼叫端對等電腦已知的所有 Cloud 中的特定 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

參數

peerName
PeerName

要解析的 PeerName

傳回

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 如果無法解析對等名稱或 為 nullPeerToPeerException 則會擲回 。

對於不安全的對等名稱,相同的名稱可以註冊 (,並與相同雲端內不同對等) 的不同端點相關聯。

PeerNameResolver呼叫 方法類似於針對 中的每個PeerNameRecordCollection對等名稱記錄呼叫 Resolve 方法。 請注意,在個別對等名稱記錄上使用 Resolve 方法並不會使解析多個對等名稱失效。

對於每個 Resolve 方法,都有相等 ResolveAsync 的方法。 其參數清單完全相同,不同之處在於 ResolveAsync 方法包含異步事件處理的系統令牌。

Cloud如果未提供 參數,方法會Available使用快捷方式填入雲端參數。

ResolveCompleted如果解析作業發生錯誤或取消,就會引發 事件。

另請參閱

適用於

Resolve(PeerName, Int32)

解析呼叫端對等電腦已知的所有 Cloud 中的特定對等名稱,並傳回指定數目範圍內的 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

參數

peerName
PeerName

要解析的 PeerName

maxRecords
Int32

針對提供的 peerName,要從所有 PeerNameRecord 物件中取得的 Cloud 物件數目上限。

傳回

PeerNameRecordCollection,其大小小於或等於 maxRecords 項目。 這個集合會包含與解析之 PeerName 相關聯的對等名稱記錄。

例外狀況

peerName 參數設定為 null

maxRecords 參數小於或等於零。

提供的對等名稱無法解析。

備註

這個方法會將對等名稱與雲端產生關聯。 系統會查詢所有雲端以取得對等名稱。 對於不安全的對等名稱,相同對等名稱可由相同 Cloud中的不同用戶註冊,並與不同的端點相關聯。 例如, PeerName 如果無法解析 (,則不會在擲回) PeerToPeerException 發佈對等名稱。

對於每個 Resolve 方法,都有相等 ResolveAsync 的方法。 其參數清單完全相同,不同之處在於 ResolveAsync 方法包含異步事件處理的系統令牌。

ResolveCompleted如果解析作業發生錯誤或取消,就會引發 事件。

適用於

Resolve(PeerName, Cloud)

解析指定的 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

參數

peerName
PeerName

要解析的 PeerName

cloud
Cloud

要在其中解析對等名稱的 Cloud

傳回

PeerNameRecordCollection,內含與指定的對等名稱相關聯的所有對等名稱記錄 (表示為 PeerNameRecord 物件)。 對於不安全的對等個體名稱,相同的 PeerName 可由不同的使用者在相同的 Cloud 中登錄,並與不同的端點產生關聯。

例外狀況

peerName 參數設定為 null

提供的對等名稱無法解析。

備註

PeerName如果無法解析 (,則不會在擲回) PeerToPeerException 發佈對等名稱。

對於不安全的對等名稱,相同的名稱可以註冊 (,並與相同雲端內不同對等) 的不同端點相關聯。

對於每個 Resolve 方法,都有相等 ResolveAsync 的方法。 其參數清單完全相同,不同之處在於 ResolveAsync 方法包含異步事件處理的系統令牌。

Cloud如果 參數為 null,則會PeerNameResolver使用Available快捷方式來填入NameScopeScopeId

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

參數

peerName
PeerName

要解析的 PeerName

cloud
Cloud

要在其中解析 peerNameCloud

maxRecords
Int32

針對指定的 peerName,要從指定的 Cloud 中取得的對等名稱記錄物件數目上限。

傳回

PeerNameRecordCollection,其大小小於或等於 maxRecords 項目。 這個集合會包含與解析之 PeerName 相關聯的對等名稱記錄。

屬性

例外狀況

peerName 參數設定為 null

maxRecords 參數小於或等於零。

提供的對等名稱無法解析。

備註

對於不安全的對等名稱,相同的名稱可以註冊 (,並與相同雲端內不同對等) 的不同端點相關聯。 如果無法解析對等名稱, PeerToPeerException 則會擲回 。

對於每個 Resolve 方法,都有相等 ResolveAsync 的方法。 其參數清單完全相同,不同之處在於 ResolveAsync 方法包含異步事件處理的系統令牌。

Cloud如果 參數為 null,則會PeerNameResolver使用Available快捷方式來填入NameScopeScopeId

ResolveCompleted如果解析作業發生錯誤或取消,就會引發 事件。

適用於