PeerGraphListen 函数 (p2p.h)

PeerGraphListen 函数指示对等图应开始侦听传入连接。

语法

NOT_BUILD_WINDOWS_DEPRECATE HRESULT PeerGraphListen(
  [in] HGRAPH hGraph,
  [in] DWORD  dwScope,
  [in] DWORD  dwScopeId,
  [in] WORD   wPort
);

参数

[in] hGraph

指定要侦听的对等图。

[in] dwScope

指定要侦听的 IPv6 范围。 下表中标识了有效值。 有关范围的详细信息,请参阅 链接本地和 Site-Local 地址

含义
PEER_GRAPH_SCOPE_GLOBAL
范围包括 Internet。
PEER_GRAPH_SCOPE_SITELOCAL
范围仅限于站点,例如公司 Intranet。
PEER_GRAPH_SCOPE_LINKLOCAL
范围仅限于本地子网。

[in] dwScopeId

指定要侦听的 IPv6 范围 ID。 指定零 (0) 侦听指定范围的所有接口。

注意 如果PEER_GRAPH_SCOPE_SITELOCAL或PEER_GRAPH_SCOPE_LINKLOCAL dwScope ,则不允许使用范围 ID 0 ( 0 )
 

[in] wPort

指定要侦听的端口。 指定零 (0) 以使用动态端口。 如果指定了零 (0) ,请使用 PeerGraphGetNodeInfo 检索数据。

返回值

如果操作成功,则返回 S_OK 。 否则,函数将返回下表中标识的值之一。

返回代码 说明
E_INVALIDARG
其中一个参数无效。
E_OUTOFMEMORY
没有足够的内存来执行指定的操作。
PEER_E_GRAPH_NOT_READY
该图从未同步过。 在同步对等图之前,应用程序无法侦听。
PEER_E_INVALID_GRAPH
对等图的句柄无效。
PEER_E_NOT_INITIALIZED
在使用此函数之前,必须通过调用 PeerGraphStartup 初始化图形。

注解

为了能够接受直接连接,节点必须订阅 PEER_GRAPH_EVENT_DIRECT_CONNECTION 事件。

在调用此函数之前,应用程序必须调用 PeerGraphCreatePeerGraphOpen

注意 如果这是首次打开对等图,则在节点连接到对等图并与对等图同步之前,对 PeerGraphListen 的所有调用都会失败。
 
如果所有对等图都在同一进程中,则应用程序可以为不同的对等图指定相同的端口 ID。

示例

以下代码片段演示如何使用 PeerGraphListen 函数。

    // g_hGraph is a handle to the Graph obtained from a previous successful call to PeerGraphCreate or PeerGraphOpen.
    // dwScope should be set to the same scope used to create the graph.  This example assumes the graph was created in the Global scope.
    // g_usPort is the port to use for Graphing.  Use zero to obtain a port dynamically.
    HRESULT hr = PeerGraphListen(g_hGraph, PEER_GRAPH_SCOPE_GLOBAL, 0, g_usPort);

    if (FAILED(hr))
    {
        // Insert your code to handle the error here.
    }
    else
    {
        // Insert your application specific code here.
    }

要求

要求
最低受支持的客户端 具有 SP2 的 Windows XP [仅限桌面应用],具有 SP1 的 Windows XP 与高级网络包 forWindows XP
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 p2p.h
Library P2PGraph.lib
DLL P2PGraph.dll

另请参阅

PeerGraphConnect

PeerGraphCreate

PeerGraphGetNodeInfo

PeerGraphOpen