2010-12-30 14 views
5

Zajmuję się obszarami nazw dla System.Net.PeerToPeer w .NET 4.0, a klasy zapewnione w tej bibliotece wydają się być dość dobre do budowania sieci P2P. Jednak, gdy szukam przykładów i referencji, mogę znaleźć tylko stare nieaktualne przykłady lub odniesienia, które po prostu wskazują na dokumentację MSDN. Wygląda na to, że zbyt mało osób korzysta z tej biblioteki i że do tego produktu nie wkłada się zbyt wiele wysiłku. Czy ktokolwiek wie o problemach z tą biblioteką, których nie jestem świadomy, może przekonać mnie, żebym jej nie używał? Widziałem, że starsze wersje Windows nie obsługują go, ale to nie jest dla mnie przystawka na pokaz. Czy jest coś jeszcze?Jakieś problemy z biblioteką System.Net.PeerToPeer?

Odpowiedz

0

Ten interfejs API jest oparty na PNRP. Wymaga połączenia IPv6 (przynajmniej przez Teredo); jest to zwykle niedostępne w dzisiejszych instalacjach i wymaga wysiłku administracyjnego, aby go skonfigurować. Uważam, że jest to główny powód, dlaczego tak mało jest w tym interesu.

9

Nie zgadzam się z poprzednią odpowiedzią.

Podczas gdy mechanizmy P2P wbudowane w .NET używają PNRP, ograniczone przykłady online mają więcej wspólnego z ignorancją programisty niż z ograniczeniami sieci.

Opracowałem dość złożoną aplikację P2P wykorzystującą kanał peer/netPeerTcpBinding. Ta aplikacja działa praktycznie bez problemów w systemie Windows XP SP3 lub nowszym i działa przez Internet.

IPv6 jest zainstalowany i włączony domyślnie w XP SP3 +, tak jak każdy inny składnik wymagany przez PNRP. Oznacza to, że prawdopodobnie 95% twojej potencjalnej bazy instalacyjnej ma już wszystkie wstępne wymagania dla twojej aplikacji.

Tak, lokalny komputer musi mieć odblokowane określone porty, ale instalator może to zrobić bardzo łatwo. Sama infrastruktura sieciowa nie musi jawnie blokować Teredo, które działa przez port UDP 3544. Wersja 2 PNRP (XP SP3 +) działa na wszystkich wariantach NAT.

Dopóki te warunki są spełnione, możesz dość łatwo skonfigurować sieć P2P za pośrednictwem publicznego Internetu bez zmian w istniejącej infrastrukturze sieci.

+0

Czy można napisać jakiś kod na poczcie/githubie lub co najmniej jedną linię, aby mi podać odpowiedź? http://stackoverflow.com/questions/6924814 – balexandre

+0

['NetPeerTcpBinding'] (https://msdn.microsoft.com/en-us/library/system.servicemodel.netpeertcpbinding%28v=vs.110%29.aspx) wydaje się być nieaktualne w .NET 4.5 niestety. –

Powiązane problemy