gpt4 book ai didi

c# - 直接P2P连接

转载 作者:太空狗 更新时间:2023-10-30 00:01:06 28 4
gpt4 key购买 nike

该主题类似于 this thread

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

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

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

最佳答案

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

NAT Hole Punching 的工作原理是两个客户端都建立到服务器的连接,然后两者都尝试直接连接到另一个已中继到另一个的端口。大多数 UDP NAT 会在短时间内记住 IP 地址和端口,因此尽管数据从未到达另一端(这与 UDP 无关)其他客户端将在几分钟后尝试连接到该报告作为 NAT期待回复。

关于c# - 直接P2P连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1183459/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com