也許與別人相反,我想在Android上運行一個web服務服務器。有沒有支持這個的庫?我認爲ksoap2例如僅用於消費Web服務,而不是服務它們,對嗎?Android作爲Webservice服務器?
而且,如果這不可能沒有冗長的編碼,我只需要在Android上運行HTTP服務器並通過它(通過POST)接收二進制文件。
任何人都可以提供一些提示嗎?
乾杯, 馬克
也許與別人相反,我想在Android上運行一個web服務服務器。有沒有支持這個的庫?我認爲ksoap2例如僅用於消費Web服務,而不是服務它們,對嗎?Android作爲Webservice服務器?
而且,如果這不可能沒有冗長的編碼,我只需要在Android上運行HTTP服務器並通過它(通過POST)接收二進制文件。
任何人都可以提供一些提示嗎?
乾杯, 馬克
最後,從來就解僱與Android設備端web服務實現它的思想和勉強通過套接字的通信和自行設計的協議去做,很喜歡這樣的:
public class AsyncTaskSocketServer extends AsyncTask<Integer, String, Integer> {
private int id;
private String TAG = "AsyncTaskSocketServer";
private AsyncTaskSocketServer() {
super();
Random generator = new Random();
id = generator.nextInt();
Log.d(TAG, "created with id: " + id);
}
@Override
protected Integer doInBackground(Integer... ports) {
int port = ports[0];
Log.v(TAG, "Trying to start on port: " + port + " with id: " + id);
try {
ServerSocket serverSocket = new ServerSocket(port);
while (!isCancelled()) {
Socket client = serverSocket.accept();
try {
Log.v(TAG, "Listening on port: "
+ port);
BufferedReader in = new BufferedReader(
new InputStreamReader(client.getInputStream()));
String str = in.readLine();
publishProgress(str);
} catch (Exception e) {
e.printStackTrace();
Log.v(TAG, "Exception while socket.accept"+ id);
} finally {
client.close();
}
client.close();
}
} catch (Exception e) {
e.printStackTrace();
Log.v(TAG, "Exception in SocketServer creation" + id);
}
return port;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
String message = values[0];
try {
NetworkQueue.MESSAGE_IN_QUEUE.put(message);
Log.v(TAG, "received: " + message);
} catch (Exception e) {
Logger.log("AsyncTaskSocketServer: Exception while writing to IN_QUEUE");
}
}
}
HTTP服務器的android的第一個結果:http://code.google.com/p/i-jetty/
基本上可以做到這一點,但沒有根,你將無法特權端口綁定,如80端口,或設置一個OOM殺手值來優先保存您的服務器,而不是其他可能需要內存的東西。
當然,除非上游wifi或3G提供商願意爲您提供可感興趣的客戶端路由的IP地址,否則您將無法做大量工作。
以及如何?動態IP是沒有問題的,並且端口可以是如18384. – stk 2011-05-30 21:37:05
與在任何其他Linux上的方式相同,如果移植複雜的服務器,則會模仿一些構建系統的麻煩 - 所以選擇一個相當輕量級的解決方案,該解決方案沒有複雜的構建系統。 – 2011-05-30 21:40:11
抱歉,但現在對我來說這太抽象了。我需要一個具體解決方案。如果你說'喜歡任何其他的Linux',那麼我得說我剛剛在linux上用近10行代碼創建了一個簡單的web服務器 - 用python。所以Linux或不是相關的...我需要像python的HTTPServer,但對於Java。 – stk 2011-05-30 21:50:22
看到已經,謝謝。但它是否支持Web服務創建和/或在HTTPServlet中重寫某些方法,如doGET?據我所見,這只是一個獨立的應用程序,而不是一個可用的庫。作爲最後的手段,我可以看看源代碼並構建自己的Web服務器,但我目前正在尋找最簡單的解決方案。 – stk 2011-05-30 21:40:03