Any issues with the System.Net.PeerToPeer library?
I have been looking into the namespace for System.Net.PeerToPeer in .NET 4.0 and the classes provided in this library seem to be reasonably good for building P2P networks. However, when I search for examples and references, I can only find old outdated examples or references that simply point back to MSDN documentation. It would appear that not too many people are using this library and that not much effort is going into this product. Does anyone know of issues with this library that I am not aware of that might persuade me to not use it? I did see that older versions of windows did not support it but that is not a sho开发者_高级运维w stopper for me. Is there anything else?
I have to disagree with the previous answer.
While the P2P mechanisms built into .NET do use PNRP, the limited examples online have more to do with developer ignorance than any network limitations.
I've developed a pretty complex P2P application using the peer channel / netPeerTcpBinding. This application functions with virtually no issues on Windows XP SP3 or above, and works over the internet.
IPv6 is installed and enabled by default on XP SP3+, as is every other component required by PNRP. This means probably 95% of your potential install base already have all the prerequisits for your application.
Yes, the local machine needs to have certain ports unblocked, but this can be done by your installer very easily. The network infrastructure itself only needs to not explicitly block Teredo, which operates over UDP port 3544. Version 2 of PNRP (XP SP3+) works over all NAT variants.
As long as those conditions are met, you can fairly easily setup a P2P mesh over the public internet with no changes to your existing network infrastructure.
This API is based on PNRP. It requires IPv6 connectivity (at least through Teredo); this is typically unavailable in today's installations, and requires administrative effort to set it up. I believe that is the primary reason why there is so little interest in it.
精彩评论