将数据从服务器发送到GPS设备
本文关键字:GPS 设备 数据 服务器 | 更新日期: 2023-09-27 18:18:39
这是我在这里的第一个问题,在搜索和阅读了很多地方之后,我别无选择,只能问。我有一个c#应用程序,从GPS设备接收数据并存储在数据库中,我现在需要的是发送一个字符串,其中包含设备应该解释的命令。这个设备通过GPRS连接到互联网,我不知道如何通过TCP通过GPRS发送这个数据包,因为IP是动态的。
我希望大家对如何解决这个问题有什么建议或想法。
问好。
您应该反过来做——设备应该轮询服务器以获取指令。只要确保服务器是可访问的。
正如你所指定的那样,你已经开发了一个c#应用程序来通过GPRS读取GPS数据,这意味着你正在公共/静态IP上运行c#应用程序。一旦您从GPRS客户端获得请求,您也将获得远程端点的DHCP IP地址。一旦端点和套接字打开,您就可以将任何数据传输回GPS设备。
假设您的GPS设备有一些微控制器来驱动GSM/GPRS调制解调器。
我要做一个假设,这里的"设备"是某种移动电话连接到一个标准的GSM网络?
如果是,那么这个故事的简短版本是"忘记它"即使IP不是动态的,你根本不会与你的设备的IP交谈,你实际上会与你的提供商的GGSN的IP地址交谈,对于一个标准的消费者连接,这将是buck停止的地方。
现在说,如果你有预算,并且你所有的设备(假设有多个)都在同一个运营商,那么你可以联系运营商并请求一个专用的APN(接入点名称)本质上这是什么,移动网络相当于DNS记录,或者至少类似于使用这个类比。
当您在设备上设置数据连接时,您可能记得必须输入' pp.one.com '或' inghub411.02 -uk '之类的内容。这是你实际的APN,如果你有一个自定义的,你的设备可以被设置,这样在GGSN上呈现的IP实际上有一个静态路由返回到供应商GSM网络中的单个设备。
作为一般的经验法则,然而,在消费级连接上,这是不启用的,因此单个设备没有可用的入口。
正如zmbq所说,你唯一的选择是让设备定期轮询服务器,是的,不幸的是,这对电池来说是非常无情的。
当然还有另一种方法,那就是让设备直接向服务器打开一个套接字,然后保持该套接字打开。一旦套接字打开,双向通信可以跨链接执行,不幸的是,你还必须编写所有的代码来管理这个连接,包括但不限于监控连接,以确保它仍然打开,如果它不是,重新建立它,这在移动设备上是非常重要的。