Winapi Windows对等连接

Winapi Windows对等连接,winapi,p2p,Winapi,P2p,我现在尝试在我的应用程序中使用Windows P2P本机函数通过internet连接它的实例。为了进行测试,我设置了一个应用程序,它使用PeerGraphCreate建立一个P2P图,然后使用PeerPNRPegister注册一些对等名称。它们使用PeerGraphRegisterEvent注册消息,并在应用程序侦听线程中的事件时进入循环。这方面似乎很好 在第二个应用程序中,我使用PeerGraphOpen打开图形,成功。然后,我使用PeerPNPRESOLVE解析第一个应用程序中的对等名称。它

我现在尝试在我的应用程序中使用Windows P2P本机函数通过internet连接它的实例。为了进行测试,我设置了一个应用程序,它使用PeerGraphCreate建立一个P2P图,然后使用PeerPNRPegister注册一些对等名称。它们使用PeerGraphRegisterEvent注册消息,并在应用程序侦听线程中的事件时进入循环。这方面似乎很好

在第二个应用程序中,我使用PeerGraphOpen打开图形,成功。然后,我使用PeerPNPRESOLVE解析第一个应用程序中的对等名称。它返回两个ipv6地址。但是,当我将其中任何一个输入到PeerGraphConnect函数时,它会返回一个HRESULT,读取“请求的地址在其上下文中无效。我不知道出了什么问题,有人愿意提供线索吗

以下是第二份申请的代码,供参考:

HGRAPH hGraph;
HRESULT hr = PeerGraphOpen( L"TestP2PGraph", L"DebugPeer", L"TestPeerDB", NULL, 0, NULL, &hGraph );
if( hr == S_OK || hr == PEER_S_GRAPH_DATA_CREATED )
{
    // Connect to PNRP
    if( SUCCEEDED( PeerPnrpStartup( PNRP_VERSION ) ) )
    {
        ULONG numEndpoints = 1;
        PEER_PNRP_ENDPOINT_INFO* endpointInfo;
        hr = PeerPnrpResolve( L"0.TestBackgroundPeer", L"Global_", &numEndpoints, &endpointInfo );
        if( SUCCEEDED( hr ) )
        {

            PEER_ADDRESS addr;
            addr.dwSize = sizeof( PEER_ADDRESS );
            addr.sin6 = *((SOCKADDR_IN6*)endpointInfo->ppAddresses[1]);
            ULONGLONG connection;
            hr = PeerGraphConnect( hGraph, NULL, &addr, &connection );
            ^^ this reads "Requested address is not valid in its context
如果有任何帮助,我将不胜感激