如何使用Java中的套接字处理来自Teltonika GPS设备的数据

时间:2012-02-17 04:47:39

标签: java sockets gps

我从Teltonika GPS设备获取数据并将其存储在我的应用程序中。我第一次连接时获得了数据,但是设备需要某种确认并且它正在等待。

任何人都可以解释如何通过Java套接字编程处理来自GPS设备的数据吗?

3 个答案:

答案 0 :(得分:1)

这取决于设备和用于与之通信的协议,但作为一般规则,您需要确保套接字处于打开和监听状态。

从问题的简要说明我会认为问题是你要么自己强行关闭套接字,要么就是没有正确地监听连接。

你的代码是否有一个围绕Socket.accept()调用的循环 - 类似..

while (true) {
  Socket socket = server.accept();

  // handle the coms...
}

基本上,要继续与您需要继续接受或“倾听”回复的内容进行沟通,否则您只会得到一个回复​​。对accept的调用是一个 阻止基本上等待客户端连接的呼叫...但是如果没有再次呼叫,你已经有效地停止接受或“倾听”

答案 1 :(得分:0)

Teltonika设备通常在发送数据后等待确认。服务器的响应应该是解码点的数量(因为Teltonika设备将几个点组合在一起,并且在解码它们的格式之后,您需要响应解码的gps点的数量)。

答案 2 :(得分:0)

您必须先使用以下步骤配置您的智能设备,如图所示:

要启动配置过程,配置服务器发送包含服务器主机(ip地址)的二进制启动SMS(“推送”SMS),并且tcp端口设备应该连接并等待TCP连接。

收到“推送”短信后,设备会尝试使用GPRS与配置服务器建立TCP连接。如果TCP连接尝试成功,服务器通过已建立的连接向设备发送配置数据,设备确认配置接收并自行配置。

如果设备在TcpWaitTimeout时间内未连接到服务器,则服务器停止等待TCP连接,使用二进制SMS发送配置数据,并等待来自设备的确认SMS。如果确认SMS未在指定时间内到达,则服务器会认为配置过程失败。

enter image description here

参考文件 https://sourceforge.net/p/opengts/discussion/579834/thread/6fd0ffe8/6213/attachment/FMXXXX%20Protocols%20v2.10.pdf