2010-12-30 5 views
5

Tôi đã xem xét không gian tên cho System.Net.PeerToPeer trong .NET 4.0 và các lớp được cung cấp trong thư viện này có vẻ hợp lý để xây dựng mạng P2P. Tuy nhiên, khi tôi tìm kiếm các ví dụ và tài liệu tham khảo, tôi chỉ có thể tìm thấy các ví dụ hoặc tham chiếu cũ đã lỗi thời mà chỉ cần trỏ ngược lại tài liệu MSDN. Có vẻ như không có quá nhiều người đang sử dụng thư viện này và không có nhiều nỗ lực vào sản phẩm này. Có ai biết về các vấn đề với thư viện này mà tôi không biết điều đó có thể thuyết phục tôi không sử dụng nó? Tôi đã thấy rằng các phiên bản cũ hơn của các cửa sổ không hỗ trợ nó nhưng đó không phải là một stopper hiển thị cho tôi. Có gì khác?Bất kỳ vấn đề nào với thư viện System.Net.PeerToPeer?

Trả lời

0

API này được dựa trên PNRP. Nó yêu cầu kết nối IPv6 (ít nhất là thông qua Teredo); điều này thường không khả dụng trong các bản cài đặt ngày nay và yêu cầu nỗ lực quản trị để thiết lập. Tôi tin rằng đó là lý do chính tại sao có quá ít sự quan tâm đến nó.

9

Tôi phải không đồng ý với câu trả lời trước đó.

Trong khi các cơ chế P2P được tích hợp vào .NET sử dụng PNRP, các ví dụ giới hạn trực tuyến có nhiều việc phải làm với sự thiếu hiểu biết của nhà phát triển hơn bất kỳ giới hạn mạng nào.

Tôi đã phát triển một ứng dụng P2P khá phức tạp bằng cách sử dụng kênh ngang hàng/netPeerTcpBinding. Ứng dụng này hoạt động với hầu như không có sự cố nào trên Windows XP SP3 trở lên và hoạt động trên internet.

IPv6 được cài đặt và được bật theo mặc định trên XP SP3 +, cũng như mọi thành phần khác theo yêu cầu của PNRP. Điều này có nghĩa là 95% cơ sở cài đặt tiềm năng của bạn đã có tất cả các điều kiện tiên quyết cho ứng dụng của bạn.

Có, máy cục bộ cần phải có một số cổng nhất định được bỏ chặn, nhưng điều này có thể được thực hiện bởi trình cài đặt của bạn rất dễ dàng. Bản thân cơ sở hạ tầng mạng chỉ cần không chặn Teredo một cách rõ ràng, hoạt động trên cổng UDP 3544. Phiên bản 2 của PNRP (XP SP3 +) hoạt động trên tất cả các biến thể NAT.

Miễn là các điều kiện đó được đáp ứng, bạn có thể dễ dàng thiết lập mạng P2P qua internet công cộng mà không có thay đổi đối với cơ sở hạ tầng mạng hiện tại của bạn.

+0

có thể đăng một số mã trên một bài đăng/github hoặc ít nhất là một dòng để tôi tìm ra câu trả lời của tôi không? http://stackoverflow.com/questions/6924814 – balexandre

+0

['NetPeerTcpBinding'] (https://msdn.microsoft.com/en-us/library/system.servicemodel.netpeertcpbinding%28v=vs.110%29.aspx) dường như đã được thực hiện lỗi thời trong NET 4.5. –