gpt4 book ai didi

c# 点对点网络 - 绕过路由器

转载 作者:太空狗 更新时间:2023-10-30 00:22:03 25 4
gpt4 key购买 nike

我想用 C# 编写一个类似点对点的聊天程序。我想弄清楚网络是如何工作的。我知道这个概念是每个对等点同时是客户端和服务器。它可以连接并被连接到。但我的问题是,如何连接到路由器后面的计算机而不将端口转发到该计算机?我知道像 Bittorrent 这样的东西可以毫无问题地做到这一点。我正计划使用跟踪器来保留对等点列表和他们监听的端口,但我仍然不明白如何解决路由器问题。有人可以解释一下吗?

最佳答案

你是对的,这不是微不足道的。问题是所谓的 NAT,或 network address translation 。本质上,您在自己的本地网络中拥有的 IP 是唯一的,但在更广泛的公共(public)互联网环境中,同一路由器后面的许多人将拥有相同的公共(public) IP。因此,给定一个 IP 和一些数据,您不一定能知道另一端的哪个人应该得到它。

最有效和最简单的解决方案是让第三方通过将自身插入数据流来调解连接。聊天中的每个人都不是同时是“客户端”和“服务器”,而是只有一台服务器,而且它位于一个众所周知的公共(public)位置;然后每个人都连接到它。然后服务器管理通信并在人们聊天时向他们发送消息。

不过,还有其他解决方案。例如,您可以使用众所周知的端口,而不是使用众所周知的服务器:所有通信都在该端口上进行。然后你不需要服务器,但所有端点都需要打开该端口,这需要事先配置。

关于c# 点对点网络 - 绕过路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2710252/

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