充当局域网外部的服务器

Acting as a server outside LAN

本文关键字:服务器 外部 局域网      更新时间:2023-10-16

>我目前正在编写一个点对点聊天应用程序来在世界各地聊天,但我的问题是我无法连接到 LAN 之外的另一台计算机,因为尽管我有我朋友的公共 IP 地址,如有必要,我可以获取他们的私人 IP 地址,我如何连接到他们的 PC,因为公共 IP 地址是路由器的地址, 不是计算机的地址,我只能指定一个地址(公共或私有(。那么,如何在不进行设置的情况下将消息发送到特定的计算机而不是路由器呢?我知道这是可能的,因为否则,如果您请求网页,则局域网中的所有计算机都可以获取您的私人信息(在有线方案中,因为在Wi-Fi中显然是可能的(。任何帮助将不胜感激,对不起我的英语:D差。

有两种可能性:

1 在这里阅读: http://en.wikipedia.org/wiki/STUN

2 选择IPv6! ;-(

实际上,路由器另一端的计算机的私有IP地址对您没有帮助。在这些情况下,如果他们启动与您的连接,那么您很好,因为您可以在该连接上做出响应。

如果要启动与它们的连接,则必须将其连接到其公共 IP 地址,并且必须将路由器配置为将入站请求(在任何端口上(映射到其网络中的正确 IP 地址。

首先,您需要确保您尝试连接的计算机正在侦听特定端口(与您尝试连接到的端口相同(。

您还需要配置您的朋友路由器,以便他们将该端口上的所有请求转发到您朋友的计算机。如果您无法访问路由器,最好使用不在任何路由器后面的计算机作为聊天服务器。

理想的解决方案是使用 uPNP。这允许您的应用程序与当前网络上的路由器通信,并要求它们将相应的消息转发给您。然后,这会在防火墙上形成一个洞,允许你的应用(在另一台电脑上(进行连接。

假设两个应用程序都执行此操作,则任何一端都可以启动连接。如果只有一端有应用程序,那么另一端必须启动连接。

想象一下,如果互联网上的每个人都可以向任何人发送消息会发生什么 - 没有预装软件......