从GPS设备读取数据

时间:2012-02-07 06:59:10

标签: java sockets tcp gps

我正在为我们的客户建立一个位置跟踪系统。他们在车辆中安装了GPS设备,每个设备都配有服务器IP和端口号。 GPS设备在给定的IP地址和端口上进行通信。我想读取来自GPS设备的数据包(如纬度,经度和其他信息,因为数据包包含二进制信息),而不进行任何读取操作。

我在寻找:

一个。从Device读取数据并存储在某个中间位置,因为我们有TCP侦听器,Device通过它与我们通信。

B中。我不想做任何操作,就像任何格式数据一样简单,如果GPS设备发送给监听器,它必须监听并存储它,而不需要任何操作。

由于

2 个答案:

答案 0 :(得分:0)

code可能会对您有所帮助。

答案 1 :(得分:0)

我提供了示例代码检查:

public class ServerListener {

public static void main(String[] args) {
    new ServerListener().startServer();
}

public void startServer() {
    final ExecutorService clientProcessingPool = Executors.newFixedThreadPool(03);

    Runnable serverTask = new Runnable() {
        @SuppressWarnings("resource")
        @Override
        public void run() {
            try {
                ServerSocket serverSocket = new ServerSocket(5094);
                System.out.println("Waiting for clients to connect...");
                while (true) {
                    Socket clientSocket = serverSocket.accept();
                    clientProcessingPool.submit(new ClientTask(clientSocket));
                }
            } catch (IOException e) {
                System.err.println("Unable to process client request");
                e.printStackTrace();
            }
        }
    };
    Thread serverThread = new Thread(serverTask);
    serverThread.start();
}

private class ClientTask implements Runnable {
    private final Socket clientSocket;

    private ClientTask(Socket clientSocket) {
        this.clientSocket = clientSocket;
    }

    @Override
    public void run() {
        System.out.println("Got a client !");
        while (true) {

        try {
            BufferedReader reader = new BufferedReader( new InputStreamReader(clientSocket.getInputStream()));
            String clientData = "";

            clientData = reader.readLine();
            System.out.println("clientdata::::"+clientData);


        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    }


 }
}