2010-12-30 3 views
5

Я изучал пространство имен для System.Net.PeerToPeer в .NET 4.0, а классы, представленные в этой библиотеке, по-видимому, достаточно хороши для построения сетей P2P. Однако, когда я ищу примеры и ссылки, я могу найти только старые устаревшие примеры или ссылки, которые просто указывают на документацию MSDN. Похоже, что не слишком много людей используют эту библиотеку и что в этот продукт не так много усилий. Кто-нибудь знает о проблемах с этой библиотекой, о которых я не знаю, может убедить меня не использовать ее? Я видел, что более старые версии окон не поддерживают его, но это не шоу-стоппер для меня. Есть ли еще что-нибудь?Какие-либо проблемы с библиотекой System.Net.PeerToPeer?

ответ

0

Этот API основано на PNRP. Для этого требуется подключение IPv6 (по крайней мере, через Teredo); это обычно недоступно в современных установках и требует административных усилий для его настройки. Я считаю, что это основная причина, по которой в этом так мало интереса.

9

Я должен не согласиться с предыдущим ответом.

Хотя механизмы P2P, встроенные в .NET, используют PNRP, ограниченные примеры онлайн имеют больше общего с незнанием разработчика, чем с любыми сетевыми ограничениями.

Я разработал довольно сложное приложение P2P, используя одноранговый канал/netPeerTcpBinding. Это приложение работает практически без проблем в Windows XP SP3 или выше и работает через Интернет.

IPv6 установлен и включен по умолчанию на XP SP3 +, как и любой другой компонент, требуемый PNRP. Это означает, что, вероятно, 95% вашей потенциальной базы установки уже имеют все предварительные условия для вашего приложения.

Да, на локальной машине должны быть разблокированы определенные порты, но это может сделать ваш установщик очень легко. В самой сетевой инфраструктуре не требуется явно блокировать Teredo, который работает через порт UDP 3544. Версия 2 PNRP (XP SP3 +) работает во всех вариантах NAT.

Пока эти условия соблюдены, вы можете легко настроить сетку P2P через общедоступный Интернет без каких-либо изменений в вашей существующей сетевой инфраструктуре.

+0

Возможно ли опубликовать какой-либо код на столбе/github или хотя бы одну строку, чтобы я мог ответить на мой вопрос? http://stackoverflow.com/questions/6924814 – balexandre

+0

['NetPeerTcpBinding'] (https://msdn.microsoft.com/en-us/library/system.servicemodel.netpeertcpbinding%28v=vs.110%29.aspx) по-видимому, был устаревшим в .NET 4.5. –

Смежные вопросы