我目前正在编写一个点对点聊天应用程序来聊天,但我的问题是我无法连接()到局域网外的另一台计算机,因为虽然我有我的公共IP地址朋友,如果有必要,我可以获得他们的私人IP地址,我怎么能连接到他们的PC,因为公共IP地址是路由器的地址,而不是计算机的地址,我只能指定一个地址(公共或私人)。那么如何将消息发送到特定的计算机而不是路由器而不必设置它?我知道这是可能的,否则,如果您请求网页,您局域网中的所有计算机都可以获取您的私人信息(在有线方案中,因为在Wi-Fi中显然是可能的)。 任何帮助将不胜感激,抱歉我的英语不好:D。
答案 0 :(得分:1)
实际上路由器另一侧的计算机的私有IP地址对您没有帮助。在这些情况下,如果他们启动了与您的连接,那么您就可以了,因为您可以回复该连接。
如果要启动与它们的连接,必须到它们的公共IP地址,并且必须将其路由器配置为将入站请求(在任何端口上)映射到正确的IP他们的网络中的地址。
答案 1 :(得分:1)
答案 2 :(得分:0)
首先,您需要确保您尝试连接的计算机正在侦听特定端口(与您尝试连接的端口相同)。
您还需要配置好友路由器,以便将该端口上的所有请求转发给您朋友的计算机。如果您无法访问路由器,最好使用不在任何路由器后面的计算机作为聊天服务器。
答案 3 :(得分:0)
理想的解决方案是使用uPNP。这允许您的应用程序与当前网络上的路由器通信,并要求它们将适当的消息转发给您。然后,这会在防火墙上形成一个漏洞,允许您的应用程序(在另一台PC上)进行连接。
假设两个应用都这样做,任何一端都可以启动连接。如果只有一端有应用程序,则OTHER端必须启动连接。
想象一下what would happen如果互联网上的每个人都可以向任何人发送消息 - 没有预装软件......