因此,我正在爲我的iphone編寫一個應用程序,該應用程序與使用套接字運行Java應用程序的計算機進行網絡連接。但是當我傳輸數據時,我必須從我的iphone發送一個NSData對象,當然Java程序不知道如何解釋它。我怎樣才能解決這個問題?我需要在兩個應用程序之間發送3個浮點值。將NSData轉換爲Java float?
任何幫助,將不勝感激......
因此,我正在爲我的iphone編寫一個應用程序,該應用程序與使用套接字運行Java應用程序的計算機進行網絡連接。但是當我傳輸數據時,我必須從我的iphone發送一個NSData對象,當然Java程序不知道如何解釋它。我怎樣才能解決這個問題?我需要在兩個應用程序之間發送3個浮點值。將NSData轉換爲Java float?
任何幫助,將不勝感激......
你說你有發送NSData對象 - 爲什麼?
如果可以,請將其發送爲String
,並在Java端執行Float.parseFloat(str);
?
如果您需要一次發送三個值,請在它們之間提供一個分隔符,例如;
,並在Java中執行str.split(";");
。這會給你一個String[]
,你可以使用上面提到的方法解析每個值。簡化的,是這樣的:
String delimitedFloats = readFloatsFromSocket();
for (String floatStr : delimitedFloats.split(";"))
{
float f = Float.parseFloat(floatStr);
doSomething(f);
}
免責聲明:我甚至不知道NSData的是,所以請原諒我,如果我的方式關閉或失去了一些東西明顯。
float a,b,c;
NSString *s = [NSString stringWithFormat:@"%g,%g,%g",a,b,c];
NSData *d = [s dataWithEncoding:NSUTF8StringEncoding];
// send d
...
byte[] b = ...; // read data
String s = new String(result);
String[] ss = s.split(",");
float a = Float.parseFloat(ss[0]);
float b = Float.parseFloat(ss[1]);
float c = Float.parseFloat(ss[2]);
真棒的感謝! – 2010-06-24 07:23:26