也许与别人相反,我想在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