我想更好地了解网络可以做什么,我目前正在开发一些 Android 应用程序,我想以某种方式通过 WiFi 和/或 3G/4G 实现某种 P2P 连接。我知道这样做会遇到很多困难,但我仍然想知道如何开始解决这个问题,或者有一个方向。
我对此有一个想法,我认为如果它有效,我可以避免 NAT 遍历的所有麻烦(我绝对不会假装我是第一个提出这个想法的人):
Jim 和 John 都连接到服务器。服务器将它们放在同一个盒子中,并相互转发彼此的消息。在某些时候,服务器厌倦了浪费他的带宽。他有一个连接到 Jim 的插座,还有一个连接到 John 的插座。所以“不知何故”(也许是神奇地),他把他的 to-John-Socket 给了 Jim,反之亦然。
因此新的场景:Jim 过来说“嘿服务器,给 John 一个套接字”: 服务器:好的,等他来。约翰:嘿服务器,给吉姆一个插座。服务员:哦,你来了!吉姆,拿走约翰的插座。约翰,拿走吉姆的插座。见你们!
服务器回到他的小生意,而吉姆和约翰做他们自己的事情。
我想肯定没有这么简单。那么我该怎么做呢?如果我需要在某个时候遍历 NAT 网关,我该怎么做(我自己,没有库)?