将数据从服务器发送到GPS设备

时间:2011-12-23 22:48:45

标签: c# gps gprs

这是我在这里的第一个问题,在搜索和阅读了许多地方后,我别无选择,只能问。 我有一个C#应用程序从GPS设备接收数据并存储在数据库中,我现在需要发送一个字符串,其中包含应该解释设备的命令。 这个设备通过GPRS连接到互联网,我不知道如何通过GPRS在TCP上发送这个数据包,因为IP是动态的。

我希望有关于如何解决这个问题的任何建议或想法。

最好的问候。

3 个答案:

答案 0 :(得分:1)

您应该以相反的方式执行此操作 - 设备应轮询服务器以获取指示。只需确保服务器可以访问。

答案 1 :(得分:0)

正如您所指定的那样,您已经开发了一个C#应用程序来通过GPRS读取GPS数据,这意味着您正在公共/静态IP上运行C#应用程序。 Nwo一旦收到GPRS客户端的请求,您就会获得远程端点的DHCP IP地址。 打开端点和插槽后,您可以将任何数据传输回GPS设备。

假设您的GPS设备有一些微控制器来驱动GSM / GPRS调制解调器。

答案 2 :(得分:0)

我在这里假设'设备'是某种连接到标准GSM网络的手机?

如果是,那么故事的简短版本就是“忘掉它”,即使IP不是动态的,你根本就不会和你的设备的IP交谈,你实际上是在和您的提供商GGSN的IP地址,对于标准的消费者连接,这将是降压停止的地方。

现在说,如果您有预算,并且所有设备(假设多个设备)都使用相同的运营商,那么您可以接近运营商并请求专用的APN(接入点名称)基本上是这样的,是移动网络相当于DNS记录,或者至少相似,足以使用该类比。

当您在设备上设置数据连接时,您可能会想起必须输入“pp.vodafone.com”或“INGhub411.o2-uk.inbound”这样的内容,我们这是您的实际APN,如果您有一个自定义的设备可以设置你的设备,以便在GGSN上呈现的IP实际上有一条静态路由回到供应商GSM网络中的单个设备。

作为一般的经验法则,但是在消费级连接上没有启用,因此单个设备没有可用的入口。

正如zmbq所说,你所拥有的唯一选择是让设备定期轮询服务器,不幸的是,这对电池来说是非常无情的。

当然还有另外一种方法可以解决这个问题,那就是让设备直接打开你的服务器套接字然后保持套接字打开。一旦套接字打开,可以在链接上执行双向通信,不幸的是,您还必须编写所有代码来管理此连接,包括但不限于监视连接以确保它仍然打开并重新建立如果不是,那就是在移动设备上非常重要的东西。