Bir istemciye bazı içerikleri sunmak için Android'de basit bir HTTP sunucusu oluşturmak istiyorum.
Sunucunun nasıl kurulacağına veya mevcut herhangi bir kitaplığın nasıl kullanılacağına dair herhangi bir tavsiye?
Bir istemciye bazı içerikleri sunmak için Android'de basit bir HTTP sunucusu oluşturmak istiyorum.
Sunucunun nasıl kurulacağına veya mevcut herhangi bir kitaplığın nasıl kullanılacağına dair herhangi bir tavsiye?
Yanıtlar:
Şunu düşünün: https://github.com/NanoHttpd/nanohttpd . Java ile yazılmış çok küçük. Sorunsuz kullandım.
NanoHttpd, Android'de bir cazibe gibi çalışır - üretimde koda sahibiz, kullanıcıların ellerinde, bunun üzerine kurulu.
Lisans, NanoHttpd'nin herhangi bir "viral" etki olmaksızın ticari kullanımına kesinlikle izin verir.
Bu, JavaSE'de olduğu gibi ServerSocket kullanılarak yapılabilir . Bu sınıf Android'de mevcuttur. android.permission.INTERNET
gerekli.
Tek daha zor kısım, accept
yönteminden gelen alt soketlere hizmet veren ServerSocket üzerinde ayrı bir iş parçacığı beklemesine ihtiyacınız var . Ayrıca gerektiğinde bu konuyu durdurmanız ve devam ettirmeniz gerekir. En basit yaklaşım, ServerSocket'i kapatarak bekleyen iş parçacığını öldürüyor gibi görünüyor. Yalnızca etkinliğiniz en üstteyken bir sunucuya ihtiyacınız varsa, ServerSocket iş parçacığını başlatmak ve durdurmak, etkinlik yaşam döngüsü yöntemlerine oldukça zarif bir şekilde bağlanabilir. Ayrıca, sunucunun birden fazla kullanıcısı varsa, isteklere çatallı evrelerde hizmet vermek iyi olabilir. Yalnızca bir kullanıcı varsa, bu gerekli olmayabilir.
Kullanıcıya hangi IP'nin sunucu dinlediğini söylemeniz gerekiyorsa, NetworkInterface .getNetworkInterfaces () kullanın , bu soru fazladan hileler söyleyebilir.
Son olarak, burada muhtemelen çok kısa, basit ve diğer yanıtlarda önerilen bitmiş son kullanıcı uygulamalarından daha anlaşılması daha kolay olabilecek eksiksiz bir minimal Android sunucusu vardır.
Http: //tjws.sf.net'i deneyebileceğiniz başka bir sunucu , aslında zaten Android destekli sürümü sağlıyor.
Android için Restlet sürümünü deneyebilirsiniz :
Kaynak, Restlet web sitesinden indirilebilir :
Kotlin kullanıyorsanız, bu kitaplığı düşünün. Kotlin dili için oluşturulmuş. https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer çok küçüktür, ancak özellik de daha azdır.
Ktor çok güzel bir kitaplık ve kullanımı da basit