问题标签 [pnrp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
149 浏览

wcf - 如何以编程方式检查 PNRP 设置?

我正在尝试使用 WCF 和 PNRP 构建应用程序,但我已经在本地网络上遇到了一些与 pnrp 设置相关的问题。现在我让这个连接在本地工作,通过一些命令行操作来启用 pnrp,但现在我正在测试与不同网络上的两个应用程序的连接,它们根本找不到彼此,我不知道为什么。

我想知道是否有一种方法可以以编程方式检测 PNRP 是否存在问题,或者至少找到一些有用的参数以打印到日志文件中,这样我就可以对问题所在有丝毫的了解,因为有关未找到的信息互联网上的同行似乎很少,我已经尝试了我确实找到的建议,但无济于事。

0 投票
1 回答
1197 浏览

p2p - PNRP 如何在 Internet 上找到其他对等方?

我想知道 PNRP 如何设法检测全球云中的其他对等点(我假设是通过互联网)。我读过它使用“类似于分布式哈希表系统的架构”,但这并不能告诉我太多。

在我看来,在某些时候,我的节点必须向某个地方发送某种消息,最终返回算法找到的任何其他对等地址,但是如果没有中央服务器要询问,它会将此初始消息发送到哪里?此时知道任何其他节点吗?

0 投票
0 回答
200 浏览

.net - 面向游戏开发者的 .Net P2P 解决方案(最好是 XNA)

所以,标题几乎说明了一切。

我试过 PNRP,但我没有找到任何方法让它与 TCP 一起工作,只有 WCF(据我了解,PNRP 是为 WCF 制作的)。所以如果一切都失败了,我想我可以让我的游戏使用 WCF 服务,但我不知道这个选项对游戏网络有多好。

我最想要的是让 TCP 像 p2p 一样工作(游戏应用程序既是客户端又是服务器),而无需通过某些代理服务器交换数据。所以请告诉是否有任何好的方法。

谢谢!

0 投票
0 回答
575 浏览

c# - 使用 PNRP HostName 成功托管 WCF 服务?

我想做的是 p2p 聊天应用程序,公平而简单。它在一台或多台计算机上的多个实例中使用一个程序。所以没有特定的“服务器/主机”应用程序。另请注意,我没有使用对等通道。

所以这是我在聊天应用程序中的服务主机:

PeerHostName(DNS 名称)是不安全的,它看起来像“hatest-hna3l.p0.pnrp.net”。因此,有时当聊天应用程序在不同 NAT(路由器)后面的不同机器上运行时,它不起作用(PNRP 找到它,但 WCF 无法连接)。我认为这是因为重复的不安全 DNS 名称。请注意,这有时有效,有时无效!

所以我想使用 2 个 PNRP 注册的对等名称,一个不安全(用于 PNRP 解析),一个安全(因此具有比“hatest-hna3l.p0.pnrp.net”更多的唯一主机名)来实际托管 WCF 服务。

请告诉我您对这种方法的看法,它将解决我的 WCF 连接不可靠的问题。

0 投票
6 回答
1402 浏览

c# - 无代理消息传递 C#

我在同一个公司网络上有许多 WPF 客户端。我希望这些客户端彼此共享消息。我不想运行单独的服务器进程,因此无代理解决方案似乎是最好的。我考虑过使用 PNRP,但这似乎需要在每个客户端上运行 PNRP 服务,我不确定我能否保证所有客户端都会或可能运行它。我还查看了 ZeroMq,它看起来很简单,而且非常轻量级,但是我需要知道 TCP/IP 风格通信的端点,并且每个客户端都不会知道其他客户端,而是他们需要以某种方式去发现彼此。

所以我想问题是有没有我认为不符合要求的选项?

提前感谢您的帮助。

0 投票
0 回答
198 浏览

c# - 服务器缓解 P2P 连接

我正在用 C# 编写一个系统,该系统由 1 个桌面应用程序(我称之为“主机”)组成,这些应用程序通过 Internet 连接到多个“客户端”应用程序。“主机”应该能够检索状态信息(至少客户端应用程序是否正在运行)以及将文件发送到客户端计算机。客户端计算机不必相互查看或通信。客户端应用程序将 24/7 全天候运行,但主机应用程序仅在用户想要检查运行客户端应用程序的 PC 时运行。

我已经对微软的 PNRP 进行了相当多的阅读,并认为我将使用基于此的系统来减轻主机和客户端之间的连接 - 即每个客户端应用程序检测到 WAN IP 更改,并将其新 IP 报告给 linux我拥有的服务器。当主机应用程序想要连接时,它将连接到服务器,进行身份验证,并获取客户端应用程序的 WAN IP 列表。

从这里,我想直接从主机应用程序连接到每个客户端应用程序。为了减轻服务器上的负载,我不想通过服务器发送文件或状态信息。最好的方法是什么?每个客户端应用程序都可能在防火墙、NAT 等之后,我将无法手动进行端口转发(尽管我可以在它工作时使用 uPnP)。

PS - 你会建议任何 PNRP 替代品吗?我会直接使用 PNRP,除了 (1) 出于安全原因我需要使用我自己的种子服务器 (linux) 而不是 microsoft PNRP 种子服务器,并且我的理解是 PNRP 仅适用于 Windows 和 (2) PNRP 仅适用于ipv6,网络(和 ISP)可能并不总是支持。

0 投票
0 回答
230 浏览

.net - p2p 故障排除

我正在尝试使用代码注册对等点名称,并能够在另一台机器上解析对等点。我的第一次尝试是让它在我自己的网络上运行,但想让它在全球范围内运行。

更新:似乎无法添加注册。我可以在我的另一台机器上通过命令行注册并在另一台机器上解决它。

我知道这是一个很大的模糊,但会回答问题。

我还一直在查看以下链接以获取故障排除想法:

http://blogs.msdn.com/b/p2p/archive/2007/07/24/pnrp-debugging-guide-part-1.aspx

http://blogs.msdn.com/b/p2p/archive/2007/06/15/pnrp-and-pnrp-net.aspx

我正在使用以下命令来解决,但只适用于本地机器:

netsh p2p pnrp peer resolve peername=0.AMS cloud=Global_

这是我正在使用的代码:

0 投票
1 回答
357 浏览

windows - Joining a PNRP cloud on my local subnet

I'm experimenting with PNRP, just using netsh to execute basic commands to register peers on my machine. I am able to add multiple peers on my machine by opening multiple instances of a command prompt, and entering the following commands

After that I switch to the cloud context and enter show names and I see a bunch of info, and the names of my 2 peers that I registered through cmd. However, when I ask another developer (who has a machine on my same IPv4 subnet) to run the same commands they do not appear. I would expect a third peer to show up on my cloud, since we're using the same name 0.mike

What do I not understand about what is going on here, and what should I be doing to get the behavior I'd expect?

0 投票
0 回答
270 浏览

.net - Windows 10 中的 Windows Peer Near Me (PNM) API 不起作用?

我们正在尝试使用以下示例代码通过 .Net 代码使用 Windows PNM API:

我们不断收到以下异常:

在测试我们的代码之前,我们确保以下 Windows 服务正在运行:

  • 对等名称解析协议
  • 对等网络分组
  • 对等网络身份管理器
  • PNRP 机器名称发布服务

我们仍然得到上述异常。我们缺少什么?

我们在 Windows 10 机器上运行代码,并且代码使用 .Net 4.5.1 运行

0 投票
0 回答
309 浏览

network-programming - 云在 .Net 中使用 PNRP 构建 P2P 网络的问题

我正在使用 PNRP 协议在 .Net 中开发 P2P 应用程序。我已经检查了大量有关 PRNP 和 P2P 的材料(SO、Microsoft 博客等)。但仍然无法解决云的问题。并且找不到正确设置云和对等名称解析的确切分步说明。一切都在本地机器上完美运行(注册和解析名称都可以)。但是全局和本地的云状态总是单独的(如果我做了一些更改,有时会变成虚拟和同步,但最终是单独的)。结果,在一台机器上注册的对等名称在本地网络中的另一台机器上不可见。支持 IPv6。Teredo 似乎正在工作(否则全球云没有出现):

我尝试的操作(Win 10 + Win 7):

• 禁用所有网络的防火墙。
• 打开(状态:运行)并设置为自动:

• 执行此操作:https ://technet.microsoft.com/en-us/library/dd349394(v=ws.10).aspxLocal

• 在此博客上阅读并发布相同内容: https ://blogs.msdn.microsoft.com/p2p/2007/07/24/pnrp-debugging-guide-part-1/

• 转到组策略编辑器 --> 管理模板 --> Microsoft 对等网络服务 --> 全球云:

但仍然看不到本地网络中其他机器的注册名称并解析对等名称。所有云状态都是单独的。有什么建议么?

先感谢您,

PS ping种子Global_failed,但是应该不会影响本地Cloud吧?

PPS 端口 3450 和 1900 已打开并作为防火墙规则添加。