Я хотел бы создать простой HTTP-сервер в Android для обслуживания некоторого контента клиенту.
Любые советы о том, как создать сервер или использовать какую-либо существующую библиотеку?
Я хотел бы создать простой HTTP-сервер в Android для обслуживания некоторого контента клиенту.
Любые советы о том, как создать сервер или использовать какую-либо существующую библиотеку?
Рассмотрим это: https://github.com/NanoHttpd/nanohttpd. Очень маленький, написанный на Java. Я использовал его без проблем.
NanoHttpd работает как шарм на Android - у нас есть код в производстве, в руках пользователей, который построен на нем.
Лицензия абсолютно разрешает коммерческое использование NanoHttpd без каких-либо "вирусных" последствий.
Другой сервер, который вы можете попробовать http://tjws.sf.net, на самом деле он уже поддерживает Android.
NanoHttpd переместился на https://github.com/NanoHttpd/nanohttpd. может обновить ссылку.
Вы можете попробовать Restlet edition для android:
Источник можно загрузить с сайта Restlet :
Это можно сделать, используя ServerSocket, как и на JavaSE. Этот класс доступен на Android. android.permission.INTERNET
требуется.
Единственная более сложная часть - вам нужен отдельный поток на сервере ServerSocket, обслуживающий под-сокеты, которые поступают из его метода accept
. Вам также необходимо остановить и возобновить этот поток по мере необходимости. Простейший подход, похоже, убивает ожидающий поток, закрывая ServerSocket.
Если вам нужен только сервер, пока ваша деятельность находится сверху, запуск и остановка потока ServerSocket может быть довольно элегантно привязана к методам жизненного цикла активности. Кроме того, если сервер имеет несколько пользователей, может быть полезно обслуживать запросы в разветвленных потоках. Если есть только один пользователь, это может быть необязательно.
Если вам нужно указать пользователю, на котором IP-сервер прослушивает, используйте NetworkInterface.getNetworkInterfaces(), этот вопрос может дать дополнительные трюки.
Наконец, здесь, возможно, существует минимальный, простой и минимальный минимальный Android-сервер, который может быть легче понять, чем конечный конечный пользователь приложений, рекомендованных в других ответах.