当前位置:  开发笔记 > 编程语言 > 正文

直接P2P连接

如何解决《直接P2P连接》经验,为你挑选了2个好方法。

本主题类似于此主题

我对网络编程这个话题比较陌生,在一台本地机器上从来没有做过基本的TCP/UDP.现在我正在开发一个需要P2P网络支持的应用程序.更具体地说,我将需要应用程序通过互联网连接和通信,优选地不使用服务器来进行客户端之间的匹配.

我知道并假设几乎所有用户都在路由器后面,这使得流程变得复杂,因为两个客户端都无法初始化到另一个的直接连接.

我知道UPnP是允许端口转发的选项,无需用户手动配置,但截至目前,这不是一个选项.他们有什么办法实现我的目标,还是我需要那台服务器?



1> bortzmeyer..:

一个非常好的阅读,专为你:-),是RFC 5128,"跨网络地址转换器(NAT)的对等(P2P)通信状态".



2> ewanm89..:

你需要一台服务器来交换IP地址等.正如另一个线程字面指出的那样,保证连接的唯一方法是通过服务器进行代理.大多数对等系统使用UPnPNAT Hole Punching(此方法需要服务器中继端口信息,仅适用于UDP)在大多数情况下建立连接.

NAT Hole Punching由两个客户端建立与服务器的连接工作,然后两者都尝试直接连接到另一个端口转发到另一个端口.大多数UDP NAT会在短时间内记住IP地址和端口,因此虽然数据永远不会到达另一端(不是这对UDP很重要),但是其他客户端会尝试稍后连接到该报告作为NAT期待回复.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有