2011-03-13 63 views
0

目前,我有作为客户端的移动用户,他们可以通过该计算机上运行的服务器连接到他们的家庭计算机。考虑添加中介的TCP客户端/服务器

问题是,动态IP地址和端口转发存在问题。

我想过NAT穿越,但这在所有情况下都不起作用。

理想情况下,我希望他们只需在移动应用中输入用户名和密码,并将其作为启动时服务器的参数,并让他们与我在其他地方托管的中介服务器进行通信。这样他们就不必担心这些。

问题是,他们的运行服务器不知道在这种情况下移动应用程序何时请求信息,或者回应什么。

所以我正在寻找实施建议或替代方案。真的,任何东西将不胜感激。

+1

如果家庭计算机连接到其他地方托管的服务器,则可以保留该连接,并且每当移动应用程序与其通信时,它都会向家用计算机发送消息,因为连接应该是只要家庭用户正在运行该程序,就一直存在。没有? – Omar 2011-03-13 06:59:13

+0

这就是我最终做的。感谢恐惧。 – 2011-07-01 14:35:34

+0

不客气。很高兴有帮助。也许我应该把评论作​​为答案,以便你可以接受它作为答案。 – Omar 2011-07-14 00:37:24

回答

0

如果我正确地理解了这个问题,客户端想要联系到位于NAT设备后面的家庭计算机。如果是这样,这是VoIP技术的常见问题。有一些可以依靠的方法来解决动态IP地址和NAT。特别为了解决NAT问题,基于UDP Hole Punching的两种技术分别是STUNICE

如果您的解决方案不适用于VoIP,您仍然可以使用UDP Hole Punching技术与NAT后面的计算机实现实时连接 - 而且您不必拥有STUN/ICE服务器,但您将不得不了解NAT /路由以及不同类型的NAT设备。

0

当服务器和客户端位于防火墙/路由器之后时,或者当客户端位于动态IP且服务器位于防火墙/路由器之后时,打孔非常不值钱。

按照您的建议使用中间人服务器是正确的方法。而且我不太了解这个问题。让用户在您的服务器上注册一个帐户,并让他在本地服务器和电话中指定该帐户。然后让本地服务器和手机都使用提供的帐户连接到您的服务器。

这样做你的互联网服务器知道哪个本地服务器转发电话请求。

0

如果家庭计算机连接到其他地方托管的服务器,则可以保留该连接,并且每当移动应用程序与其通信时,它都会向家用计算机发送消息,因为连接应该只要家庭用户正在运行该程序,他就活着。