PeerCollaboration.GetPeersNearMe 方法

定義

傳回呼叫的對等電腦的網路子網路上,目前登入的所有 PeerCollaboration 端點的集合。

public:
 static System::Net::PeerToPeer::Collaboration::PeerNearMeCollection ^ GetPeersNearMe();
[System.Security.SecurityCritical]
public static System.Net.PeerToPeer.Collaboration.PeerNearMeCollection GetPeersNearMe ();
[<System.Security.SecurityCritical>]
static member GetPeersNearMe : unit -> System.Net.PeerToPeer.Collaboration.PeerNearMeCollection
Public Shared Function GetPeersNearMe () As PeerNearMeCollection

傳回

PeerNearMeCollection,內含目前登入至 'Near Me' 範圍的所有 PeerCollaboration 端點。

如果子網路上找不到對等電腦,則傳回大小為零 (0) 的集合。

屬性

例外狀況

對等電腦未登入 'Near Me' 範圍。

當這個方法嘗試列舉所有已知的「近端分享」端點時,傳回了無效的值。

範例

下列程式代碼範例說明如何將 PeersNearMe 擷取為 PeerNearMeCollection:

//This function retrieves the peers near me as a PeerNearMeCollection.
public static PeerNearMeCollection GetPeersNearMe()
{
    PeerNearMeCollection peers = null;
    try
    {
        peers = PeerCollaboration.GetPeersNearMe();
        if (peers == null ||
            peers.Count == 0)
        {
            Console.WriteLine("There are no peers near me.");
        }
        foreach (PeerNearMe pnm in peers)
        {
            Console.WriteLine("Getting the peers near me: {0}, nickname {1}, isOnline {2}",
                pnm.ToString(),
                pnm.Nickname,
                pnm.IsOnline);
        }
    }
    catch (PeerToPeerException p2pEx)
    {
        Console.WriteLine("Could not obtain an enumeration of the peers near me: {0}", p2pEx.Message);
    }
    catch (InvalidOperationException ioEx)
    {
        Console.WriteLine("The application is no longer signed into the Peer Collaboration Infrastructure: {0}",
            ioEx.Message);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Unexpected exception caught when trying to enumerate the peers near me: {0}",
            ex.Message);
    }

    return peers;
}

備註

根據網路拓撲和延遲,透過此方法完整填入 PeerNearMeCollection 的 傳回可能需要不確定的時間量。

呼叫這個方法需要 PermissionStateUnrestricted。 當共同作業會話開始時, Peer 就會建立此狀態。

適用於