我正在为我们的客户建立一个位置跟踪系统。他们在车辆中安装了GPS设备,每个设备都配有服务器IP和端口号。 GPS设备在给定的IP地址和端口上进行通信。我想读取来自GPS设备的数据包(如纬度,经度和其他信息,因为数据包包含二进制信息),而不进行任何读取操作。
我在寻找:
一个。从Device读取数据并存储在某个中间位置,因为我们有TCP侦听器,Device通过它与我们通信。
B中。我不想做任何操作,就像任何格式数据一样简单,如果GPS设备发送给监听器,它必须监听并存储它,而不需要任何操作。
由于
答案 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();
}
}
}
}
}