直接P2P连接

2023-11-24

这个主题类似于这个线程

我对网络编程主题相当陌生,除了在单个本地计算机上执行基本的 TCP/UDP 之外,从未做过任何其他事情。现在我正在开发一个需要 P2P 网络支持的应用程序。更具体地说,我需要应用程序通过互联网进行连接和通信,最好不使用服务器在客户端之间进行匹配。

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

我知道 UPnP 是一个允许端口转发的选项,无需用户手动配置,但到目前为止,这不是一个选项。他们有办法实现我的目标吗?或者我需要该服务器吗?


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

NAT打孔工作原理是两个客户端都建立到服务器的连接,然后两者都尝试直接连接到对方中继到对方的端口。大多数 UDP NAT 都会在短时间内记住 IP 地址和端口,因此尽管数据从未到达另一端(这对于 UDP 来说并不重要),但其他客户端稍后会尝试连接到该报告作为 NAT期待答复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

直接P2P连接 的相关文章

随机推荐