如何在Android中创build一个HTTP服务器?

我想在Android中创build一个简单的HTTP服务器来为客户端提供一些内容。

有关如何构build服务器或使用任何现有的库的任何build议?

考虑一下: https : //github.com/NanoHttpd/nanohttpd 。 非常小,用Java编写。 我用它没有任何问题。

NanoHttpd在Android上就像是一种魅力 – 我们在用户的手中已经有了编码,这是build立在它上面的。

该许可证绝对允许商业使用NanoHttpd,没有任何“病毒”影响。

NanoHttpd已经转移到https://github.com/NanoHttpd/nanohttpd 。 可能会更新链接。

另一台服务器可以试试http://tjws.sf.net ,实际上它已经提供了Android启用版本。

你可以尝试Android的Restlet版本 :

来源可以从Restlet 网站下载:

这可以使用ServerSocket来完成,就像在JavaSE上一样。 这个类在Android上可用。 android.permission.INTERNET是必需的。

唯一比较棘手的部分是,你需要一个单独的线程在ServerSocket上等待,服务来自它的accept方法的子套接字。 您还需要根据需要停止并恢复此线程。 最简单的方法似乎通过closuresServerSocket来终止等待的线程。 如果您只需要一台服务器,而您的活动位于顶部,则可以将启动和停止ServerSocket线程与活动生命周期方法相比较优雅。 另外,如果服务器有多个用户,那么在分叉的线程中服务请求可能会很好。 如果只有一个用户,则可能不需要。

如果您需要告诉用户服务器侦听的是IP,请使用NetworkInterface .getNetworkInterfaces(), 这个问题可能会告诉您额外的技巧。

最后, 这里有可能是完整的最小的Android服务器,是非常短,简单,可能比完成最终用户应用程序更容易理解,推荐在其他答案。