2010-12-30 14 views
5

He estado buscando en el espacio de nombres de System.Net.PeerToPeer en .NET 4.0 y las clases proporcionadas en esta biblioteca parecen ser razonablemente buenas para construir redes P2P. Sin embargo, cuando busco ejemplos y referencias, solo puedo encontrar ejemplos obsoletos o referencias que simplemente apuntan a la documentación de MSDN. Parece que no muchas personas están usando esta biblioteca y que no se está haciendo demasiado esfuerzo en este producto. ¿Alguien sabe de problemas con esta biblioteca que yo no conozco y que podrían persuadirme de no usarlo? Vi que las versiones anteriores de Windows no eran compatibles, pero eso no es un obstáculo para mí. ¿Hay algo mas?¿Tiene problemas con la biblioteca System.Net.PeerToPeer?

Respuesta

0

Esta API se basa en PNRP. Requiere conectividad IPv6 (al menos a través de Teredo); esto generalmente no está disponible en las instalaciones actuales y requiere un esfuerzo administrativo para configurarlo. Creo que esa es la razón principal por la que hay tan poco interés en eso.

9

Tengo que estar en desacuerdo con la respuesta anterior.

Si bien los mecanismos P2P incorporados en .NET usan PNRP, los ejemplos limitados en línea tienen más que ver con la ignorancia del desarrollador que con cualquier limitación de red.

He desarrollado una aplicación P2P bastante compleja usando el canal par/netPeerTcpBinding. Esta aplicación funciona prácticamente sin problemas en Windows XP SP3 o superior, y funciona a través de Internet.

IPv6 está instalado y habilitado por defecto en XP SP3 +, al igual que cualquier otro componente requerido por PNRP. Esto significa que probablemente el 95% de su base de instalación potencial ya tenga todos los prerrequisitos para su aplicación.

Sí, la máquina local necesita tener ciertos puertos desbloqueados, pero esto lo puede hacer su instalador muy fácilmente. La infraestructura de red en sí misma no necesita bloquear explícitamente a Teredo, que opera a través del puerto UDP 3544. La versión 2 de PNRP (XP SP3 +) funciona sobre todas las variantes de NAT.

Mientras se cumplan esas condiciones, puede configurar con bastante facilidad una malla P2P en Internet pública sin cambios en su infraestructura de red existente.

+0

¿es posible publicar algún código en una publicación/github o al menos una línea para que pueda resolver mi respuesta? http://stackoverflow.com/questions/6924814 – balexandre

+0

['NetPeerTcpBinding'] (https://msdn.microsoft.com/en-us/library/system.servicemodel.netpeertcpbinding%28v=vs.110%29.aspx) parece haber quedado obsoleto en .NET 4.5, lamentablemente. –

Cuestiones relacionadas