c# - System.Net.PeerToPeer 库有任何问题吗?

标签 c# .net networking p2p

我一直在研究 .NET 4.0 中 System.Net.PeerToPeer 的命名空间,这个库中提供的类似乎非常适合构建 P2P 网络。但是,当我搜索示例和引用时,我只能找到旧的过时示例或仅指向 MSDN 文档的引用。似乎没有太多人在使用这个库,也没有太多的努力投入到这个产品中。有谁知道我不知道的这个库的问题可能会说服我不使用它?我确实看到旧版本的 Windows 不支持它,但这对我来说不是一个障碍。还有别的事吗?

最佳答案

我不同意之前的回答。

虽然 .NET 中内置的 P2P 机制确实使用了 PNRP,但有限的在线示例更多地与开发人员的无知有关,而不是任何网络限制。

我使用对等 channel /netPeerTcpBinding 开发了一个相当复杂的 P2P 应用程序。此应用程序在 Windows XP SP3 或更高版本上运行几乎没有问题,并且可以在 Internet 上运行。

在 XP SP3+ 上默认安装并启用 IPv6,PNRP 所需的所有其他组件也是如此。这意味着您的潜在安装群中可能有 95% 已经具备您的应用程序的所有先决条件。

是的,本地机器需要解锁某些端口,但这可以由您的安装程序轻松完成。网络基础设施本身只需要不明确阻止在 UDP 端口 3544 上运行的 Teredo。PNRP 的第 2 版 (XP SP3+) 适用于所有 NAT 变体。

只要满足这些条件,您就可以相当轻松地在公共(public)互联网上设置 P2P 网格,而无需更改现有网络基础设施。

关于c# - System.Net.PeerToPeer 库有任何问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566924/

相关文章:

c# - SQL Server 通信协议(protocol)问题

c# - 使用 BouncyCaSTLe 签署 X509 证书 - 无效的数字签名

C#:如何将任意字符串解析为表达式树?

c# - 最佳实践 : action enum usage for events

c# - 是否有充分的理由在非静态类中使用静态方法?

c - Ip Tunnel 有开源吗?

c# - 将服务引用添加到可移植类库

c# - 为什么我不能使用这样的匿名方法?

android - 在运行时创建 NinePatch/NinePatchDrawable

sockets - Haskell 'timeout' 函数在应用于 'connect' 时不起作用