是否有可能在两个不同NAT的客户端之间建立一个直接连接? 当然,我认识到在某种程度上,具有公有IP的服务器将是必不可少的,但我不希望它成为代理。看看下面的场景:如何创建一个P2P连接,当两个客户端都在NAT之后
- 我不想与配置网络设备有任何关系。我只是想在代码中做到这一点。
- 我不希望服务器参与文件传输过程中(由于性能原因)
- 我们有:客户A,客户B和服务器S和它看起来有点像这样:
A - [路由器1] - S - [路由器2] - 乙
- A连接S和授权
- B连接到S和授权
- A想发送一个文件给B
- 一个要求S代表一连接到B
- S [做它的魔力在这里]和A现在已经到B
- A开始发送一个文件的连接
- S端变为向下(或至少所述文件传输绕过是)
- 仍有
- A继续发送文件到B
我的问题:
- 这可能吗?
- 如何做到这一点?
- 是否遇到过可以做到这一点的示例项目?
我发现WCF/WPF Chat Application,但它原来是一个代理。
我还发现一些帖子提示使用UPnP和NAT Traversal,但没有直接回答我的第一个问题,所以我没有深入研究它。