У меня есть приложение на Android, которое является своего рода клиент-сервером.
Я установил соединение между этими двумя, и теперь я отправляю данные через сокет.
Сервер - это тот, кто отправляет данные, а клиент читает их из сокета.
Сервер отправляет в сокет некоторые данные GPS (долгота, широта), и для реальной отправки я использую следующий формат:
public class Coordinate {
private final double lon;
private final double lat;
private final int workerId;
public Coordinate(double lat, double lon, int workerId) {
this.lat = lat;
this.lon = lon;
this.workerId=workerId;
}
public double getLon() {
return lon;
}
public double getLat() {
return lat;
}
public int getwId(){
return workerId;
}
}
Так что для каждой долготы и широты, которые я хочу отправить, я добавляю workerID, который является целым числом.
Итак, наконец, через мой сокет Iотправляю экземпляр класса Coordinate.
Coordinate coord=new Coordinate(lat,lon,workerID);
os=new PrintStream(clientSocket.getOutputStream());
os.println(coord);
Ну, пока здесь все идет хорошо.
На стороне клиента я читаю данные следующим образом:
Scanner is = new Scanner (new DataInputStream (socket.getInputStream ()));
while(is.hasNext())
{
try{
Coordinate coord=is.next();
System.out.println(coord.getLon());
}
catch(Exception e){
e.printStackTrace();
}
}
Проблема в том, что класс Scanner используется для чтения из входного потока сокетавозвращает строку, но то, что я отправляю черезсокет - это нечто совершенно иное ......
Кто-нибудь знает, как я могу преобразовать входные данные в координаты или как мне найти широту и долготу из того, что я посылаю через сокет?????
Thx!
РЕДАКТИРОВАТЬ: Я использую этот формат, потому что у меня есть свои потребности с этими данными !!