次の方法で共有


PeerNameResolver.Resolve メソッド

定義

PNRP プロトコルを使用して、PeerName オブジェクトを PeerNameRecord に解決します。

オーバーロード

Resolve(PeerName)

呼び出し元のピアに認識されているすべてのクラウド内で、指定した PeerName を解決します。

Resolve(PeerName, Int32)

呼び出し元のピアに認識されているすべてのクラウド内で、指定したピア名を解決し、指定した数以下の PeerNameRecord オブジェクトを返します。

Resolve(PeerName, Cloud)

指定した PeerName 内で指定した Cloud を解決します。

Resolve(PeerName, Cloud, Int32)

指定した PeerName 内で、指定した Cloud を解決し、指定した数以下の PeerNameRecord オブジェクトを返します。

注釈

このメソッドは、ピア名をクラウドに関連付けます。 メソッドの PeerNameResolver 呼び出しは、 内の Resolve ピア名レコードごとに メソッドを呼び出すのと PeerNameRecordCollection似ています。 個々のピア名レコードで Resolve メソッドを使用しても、複数のピア名の解決は無効にならないことに注意してください。

すべての Resolve メソッドに対して、同等 ResolveAsync のメソッドがあります。 ResolveAsync メソッドのパラメーター リストに非同期イベント処理用のシステム トークンが含まれていることを除き、渡されるパラメーターでは同じです。

パラメーターが Cloud 指定されていない場合、メソッドは ショートカットを Available 使用してクラウド パラメーターを入力します。 パラメーターがない maxRecords 場合、既定値が 0 の場合、 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

パラメーター

peerName
PeerName

解決する PeerName

戻り値

指定したピア名に関連付けられているすべての (PeerNameRecordCollection オブジェクトとして表される) ピア名レコードを格納している PeerNameRecord。 セキュリティ保護されていないピア名の場合、同じ PeerName 内の複数のユーザーが、同じ Cloud を登録して別々のエンドポイントに関連付けることができます。

例外

peerName パラメーターを null に設定します。

指定したピア名は解決できません。

次のコード例は、 でCloud発行された をPeerName解決する方法を示しています。

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 呼び出しは、 内の 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

パラメーター

peerName
PeerName

解決する PeerName

maxRecords
Int32

指定した peerName に対してすべての PeerNameRecord オブジェクトから取得する Cloud オブジェクトの最大数。

戻り値

サイズが maxRecords エントリ以下の PeerNameRecordCollection。 このコレクションには、解決された PeerName に関連付けられているピア名レコードが含まれます。

例外

peerName パラメーターを null に設定します。

maxRecords パラメーターが 0 以下です。

指定したピア名は解決できません。

注釈

このメソッドは、ピア名をクラウドに関連付けます。 すべてのクラウドに対してピア名のクエリが実行されます。 セキュリティで保護されていないピア名の場合、同じ ピア名を同じ 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場合、 PeerNameResolvernullショートカットをAvailable使用して、、Scope、および ScopeIdName入力します。

解決 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

peerName を解決する対象の Cloud

maxRecords
Int32

指定した peerName に対して、指定したクラウドから取得するピア名レコード オブジェクトの最大数。

戻り値

サイズが maxRecords エントリ以下の PeerNameRecordCollection。 このコレクションには、解決された PeerName に関連付けられているピア名レコードが含まれます。

属性

例外

peerName パラメーターを null に設定します。

maxRecords パラメーターが 0 以下です。

指定したピア名は解決できません。

注釈

セキュリティで保護されていないピア名の場合、同じ名前を同じクラウド内の異なるピアによって登録 (および異なるエンドポイントに関連付けることができます)。 ピア名を解決できない場合は、 PeerToPeerException がスローされます。

すべての Resolve メソッドに対して、同等 ResolveAsync のメソッドがあります。 パラメーター リストは同じですが、ResolveAsync メソッドには非同期イベント処理用のシステム トークンが含まれている点が異なります。

パラメーターが のCloud場合、 PeerNameResolvernullショートカットをAvailable使用して、、Scope、および ScopeIdName入力します。

解決 ResolveCompleted 操作がエラーで完了した場合、または取り消された場合、イベントが発生します。

適用対象