在我开始之前:很可能这个问题已在其他地方被提出并得到解答;也许在SO本身。如果是这种情况,请指出。我将删除此内容,然后查看该答案。
似乎我完全不了解点对点。据我所知,互联网服务提供商通过路由器提供到计算机/电话的互联网连接,也就是说,我们所有的流量都到达路由器,路由器然后将查询发送到路由器,好像它是从它自己到更广泛的" ;互联网,响应由路由器本身转发给我们。 AFAIK,这就是为什么在Google上询问"what is my ip"会产生与我们的终端上的" ifconfig" -ing不同的结果的原因。谷歌的结果为我们提供了外部IP,这是我们在更广泛的互联网上的路由器(或局域网,我不确定)的IP,以及" ifconfig" IP是我的ISP生成的局域网上的计算机IP。
如果情况确实如此,那么使用与我不同的ISP的任何人除了更广泛的网络上的路由器IP地址之外,没有关于我们的LAN的信息。那么他/她的计算机上的P2P应用程序如何将信息直接发送到我的计算机?即使我说把我的&#34; ifconfig&#34;在一些知名网站上的地址让他们知道,他们无法像Socket.getByAddress(<my-ifconfig-ip>, <some port>).connect()
那样连接到我的计算机,因为在我的局域网之外没有任何意义。 Socket.getByAddress(<my-routers-ip-on-the-net>, <some port>).connect()
也无法正常工作,因为它没有提供有关LAN上哪台计算机是其发送信息的接收者的信息。
我知道上面的很多内容都是明显错误的,因为我对网络只有基本的了解。但是,我可以从我的想法出错的地方得到很好的解释。
谢谢!