我正在编写一个在端口4900上运行的自定义p2p程序.在某些情况下,当人员在路由器后面时,无法从Internet访问此端口.
是否有自动方式从互联网访问端口.我不太确定其他p2p应用程序是如何工作的.
任何人都可以对此有所了解吗?
我遇到了一个有趣的问题.基本上我有两部手机都在NAT之后.我想使用UDP直接在2台设备之间进行通信.
我知道如果我发起从电话到服务器的连接,那么我可以将数据推回到与电话的连接(即从收到消息的同一端口将其发送回收到的相同IP和端口) .所以我可以通过将两部手机连接到服务器来轻松地在两台设备之间进行通信.然后将数据发送到服务器并将其重新路由回电话.这绕过了我可能遇到的任何NAT遍历问题.
但是我宁愿只使用服务器将2个设备指向对方,然后让它们直接通信.我该怎么做呢?是否可以不使用像uPnP这样的东西?
任何帮助都会很有用!
编辑:我发现这个文件http://www.brynosaurus.com/pub/net/p2pnat/它看起来像发夹翻译是我所追求但它看起来并没有被广泛支持.我想知道移动ISP对UPnP的支持有多好?
我尝试制作P2P程序,并需要帮助来完成客户端的NAT.我在stackoverflow上已经阅读了很多问题,但我从来没有得到通过NAT的所有方法的缺点和好处.有多少路由器支持哪些方法?大公司常用哪种方法?(BitTorrent,TeamViewer,......)我列出的三种方法有哪些缺点/好处,哪些还存在?