我目前有一個iPhone應用程序通過WiFi與運行在計算機上的C++服務器進行通信。這個應用程序將其數據(x,y座標)發送到c-struct到服務器。爲了進一步開發,我們希望iPhone應用程序直接與java服務器通信,但是主要問題是java不能模擬或使用c-struct。在兩個設備之間發送數據(x,y座標)的最佳方式是什麼?我可以在兩個設備之間建立連接。更具體地說,我將如何接收數據並在Java端處理它。iPhone應用程序/ Java服務器結構數據發佈通過WiFi
感謝您的幫助,
亞歷
我目前有一個iPhone應用程序通過WiFi與運行在計算機上的C++服務器進行通信。這個應用程序將其數據(x,y座標)發送到c-struct到服務器。爲了進一步開發,我們希望iPhone應用程序直接與java服務器通信,但是主要問題是java不能模擬或使用c-struct。在兩個設備之間發送數據(x,y座標)的最佳方式是什麼?我可以在兩個設備之間建立連接。更具體地說,我將如何接收數據並在Java端處理它。iPhone應用程序/ Java服務器結構數據發佈通過WiFi
感謝您的幫助,
亞歷
你可能會建立在Java後端RESTful Web服務。
在iPhone上,將數據打包(「序列化」)到HTTP POST請求中(不過您需要)(例如JSON,XML等)並將請求發送到Web服務。這個JSON數據反序列化到Java特定的數據容器,如ArrayList<Point>
收集
{ "coordinates": [ { "x" : "100", "y" : "200" } , { "x" : "20", "y" : "40" } ] }
Web服務響應POST請求:
例如,一個JSON對象可能看起來像。
ASIHTTPRequest使得這個設置的iPhone端非常容易,它的ASIFormDataRequest
類。
Java有JAX-WS有助於設置RESTful服務。
aforementioned link中有很多用於Objective-C和Java的JSON編碼和解碼框架和庫。
您如何懷疑這兩款設備的通信性能? iPhone設備本質上充當計算機的觸控板,並有可能每秒發送幾次座標。 – adimitri 2010-05-03 01:59:05
在這種情況下,您可能會在客戶端和服務器端查看UDP實現:例如, http://code.google.com/p/cocoaasyncsocket/和http://www.devx.com/getHelpOn/10MinuteSolution/20426 – 2010-05-03 04:35:33