2011-12-23 121 views
0

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

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

此致敬礼。

回答

1

你应该反过来 - 设备应轮询服务器的指示。只要确保服务器可以访问。

0

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

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

0

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

如果是这样,那么故事的简短版本是“忘记它”,即使IP不是动态的,你根本就不会与设备的IP通话,你实际上正在与之通话您的提供商GGSN的IP地址,而对于标准的消费者连接,这将成为降价停止的地方。现在说,如果你有预算,并且你所有的设备(假设有多个)使用同一个运营商,那么你可以接近运营商并请求一个专用的APN(接入点名称)是等同于DNS记录的移动网络,或者至少类似于使用这种类比。

当你在你的设备上设置你的数据连接时,你可能会记得不得不输入像'pp.vodafone.com'或'INGhub411.o2-uk.inbound'这样的实际APN,如果你有一个自定义的,他们可以设置你的设备,使得在GGSN上呈现的IP实际上具有返回到供应商GSM网络中的单个设备的静态路由。

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

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

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