.net 考虑添加中间层的TCP客户端/服务器

.net 考虑添加中间层的TCP客户端/服务器,.net,iphone,android,.net,Iphone,Android,目前,我有移动用户充当客户端,他们可以通过计算机上运行的服务器连接到家庭计算机 问题是,动态IP地址和端口转发存在问题 我曾经考虑过NAT遍历,但这并不适用于所有情况 理想情况下,我希望他们只需在移动应用程序中输入用户名和密码,并在启动时将其作为服务器的参数,然后让他们都与托管在别处的中间服务器通信。这样他们就不必为这些烦恼了 问题是,在这种情况下,他们运行的服务器不知道移动应用程序何时请求信息,也不知道如何响应 因此,我正在寻找实施建议或替代方案。真的,如果我正确理解这个问题,客户希望与NAT

目前,我有移动用户充当客户端,他们可以通过计算机上运行的服务器连接到家庭计算机

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

我曾经考虑过NAT遍历,但这并不适用于所有情况

理想情况下,我希望他们只需在移动应用程序中输入用户名和密码,并在启动时将其作为服务器的参数,然后让他们都与托管在别处的中间服务器通信。这样他们就不必为这些烦恼了

问题是,在这种情况下,他们运行的服务器不知道移动应用程序何时请求信息,也不知道如何响应


因此,我正在寻找实施建议或替代方案。真的,如果我正确理解这个问题,客户希望与NAT设备后面的家庭计算机联系,我们将不胜感激。

。如果是这样,这是VoIP技术的常见问题。有一些已知的可靠方法可以绕过动态IP地址和NAT。专门针对NAT问题,基于are和的两种技术


如果您的解决方案不适用于VoIP,您仍然可以使用UDP打孔技术与NAT后面的计算机实现实时连接,并且您不必拥有STUN/ICE服务器,但您必须了解很多NAT/路由和不同类型的NAT设备

当服务器和客户端都位于防火墙/路由器之后,或者在这种情况下,当客户端位于动态IP上,而服务器位于防火墙/路由器之后时,打孔是毫无价值的

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


通过这样做,您的internet服务器知道将电话请求转发到哪个本地服务器。

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

如果家庭计算机连接到托管在其他地方的服务器,您可以让它保持连接,并且无论何时移动应用程序与其通信,它都会向家庭计算机发送消息,因为只要家庭用户运行该程序,连接就应该处于活动状态。不?这就是我最后做的。谢谢,不用谢。很高兴能帮上忙。也许我应该把评论作为答案,这样你就可以接受它作为答案。