我有一個應用程序在Android這是一種客戶端服務器。使用奇怪的格式通過套接字發送dat
我已經建立了這兩者之間的連接,現在我通過套接字發送數據。
服務器是發送數據的客戶端,客戶端從套接字讀取數據。
服務器發送到插座一些GPS數據(經度,緯度)和真發送它我使用以下格式:
公共類座標{
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;
}
}
所以對於每一個經度和我想發送的緯度我添加一個int的workerID。
因此,最後通過我的套接字發送座標類的實例。
Coordinate coord=new Coordinate(lat,lon,workerID);
os=new PrintStream(clientSocket.getOutputStream());
os.println(coord);
那麼,直到這裏一切順利。
在客戶端我讀數據是這樣的:
掃描器是=新掃描儀(新DataInputStream類(socket.getInputStream()));
while(is.hasNext())
{
try{
Coordinate coord=is.next();
System.out.println(coord.getLon());
}
catch(Exception e){
e.printStackTrace();
}
}
的問題是,掃描類,我使用它從套接字輸入流中讀取返回的字符串,但我要送通過套接字的東西完全地不同..... 。
是否有人知道我怎麼能轉換輸入數據中的座標,或者我應該如何着手找到什麼我送通過插座上的經度和緯度?????
Thx!
編輯:我使用的格式,因爲我有我與數據需求!
使用JSON意味着放棄序列化???我真的不知道是什麼意思JSON! – embry 2011-05-20 15:03:44
是的,這就是我說的「可選」。通過可序列化,您只能實現與JSON的Java2Java通信,您可以在更多的平臺/語言之間交換數據。更多的是一種RESTFul類似的方法。如果您不太關心互操作性,只有您的客戶端將訪問該服務,那麼請使用Java Serializable。 – 2011-05-20 15:12:18
Actualli我的服務器是在java上,我的客戶端在android-java上....他是唯一一個讀取數據的人.Thx – embry 2011-05-20 15:15:32