Me gustaría crear un servidor HTTP simple en Android para entregar contenido a un cliente.
¿Algún consejo sobre cómo construir el servidor o usar alguna biblioteca existente?
Me gustaría crear un servidor HTTP simple en Android para entregar contenido a un cliente.
¿Algún consejo sobre cómo construir el servidor o usar alguna biblioteca existente?
Respuestas:
Considere este: https://github.com/NanoHttpd/nanohttpd . Muy pequeño, escrito en Java. Lo usé sin ningún problema.
NanoHttpd funciona a la perfección en Android: tenemos código en producción, en manos de los usuarios, que se basa en él.
La licencia permite absolutamente el uso comercial de NanoHttpd, sin implicaciones "virales".
Esto se puede hacer usando ServerSocket , al igual que en JavaSE. Esta clase está disponible en Android. android.permission.INTERNET
es requerido.
La única parte más complicada es que necesita un hilo de espera separado en ServerSocket, que atienda los sub-sockets que provienen de su accept
método. También debe detener y reanudar este hilo según sea necesario. El enfoque más simple parece matar el hilo de espera cerrando ServerSocket. Si solo necesita un servidor mientras su actividad está en la parte superior, iniciar y detener el hilo de ServerSocket se puede vincular de manera bastante elegante a los métodos del ciclo de vida de la actividad. Además, si el servidor tiene varios usuarios, puede ser bueno atender las solicitudes en los subprocesos bifurcados. Si solo hay un usuario, esto puede no ser necesario.
Si necesita decirle al usuario en qué IP está escuchando el servidor, use NetworkInterface .getNetworkInterfaces (), esta pregunta puede decirle trucos adicionales.
Finalmente, aquí existe posiblemente el servidor Android mínimo completo que es muy corto, simple y puede ser más fácil de entender que las aplicaciones de usuario final terminadas, recomendadas en otras respuestas.
Otro servidor puede probar http://tjws.sf.net , en realidad ya proporciona una versión habilitada para Android.
Puedes probar la edición Restlet para Android:
La fuente se puede descargar del sitio web de Restlet :
Si está utilizando kotlin, considere estas bibliotecas. Está construido para el lenguaje kotlin. https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer es muy pequeño, pero la función también es menor.
Ktor es una biblioteca muy agradable, y el uso también es simple