2013-10-05 1 views
0

Мне нужен httpd-сервер в моем приложении, поэтому я выбрал NanoHttpd.Android nanohttpd не запускается должным образом

Я подклассы свой собственный сервер:

public class StreamingServer extends NanoHTTPD { 
    private Context mContext; 
    public StreamingServer(Context context) { 
     super(8080); 
     mContext = context; 
     Log.i("MyServer", "Streaming server created"); 
    } 

И я пытаюсь запустить свой сервер в основной деятельности:

 // onCreate: 
     server = new StreamingServer(getApplicationContext()); 

Вот мой onResume метод:

 // onResume: 
     super.onResume(); 
     try { 
      server.start(); 
     } catch (IOException e) { 
      Log.i(TAG, "exception!"); 
      e.printStackTrace(); 
     } 
     Log.i(TAG, "started!"); 

и onPause:

 super.onPause(); 
     if (server != null) { 
      server.stop(); 
      Log.i(TAG, "stopped!"); 
     } 

Я также сделал правильную установку:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 

Так я считаю, что я сделал все правильно. Но запуск моего приложения ни к чему (Страница недоступна). Некоторые из того, как 2 или 3 запуска запускают запуск сервера (и в данный момент я НИЧЕГО не отличается).

Что я делаю неправильно?

ответ

1

NanoHttpd ожидает, что вы переопределите метод «serve()». Объект ответа, который вы возвращаете из переопределенного метода, будет возвращен веб-браузеру, который попадает на ваш сервер. Документ «README» на сайте github имеет полностью функционирующий пример (https://github.com/NanoHttpd/nanohttpd), который возвращает отладочную информацию в браузер.

Если вы хотите использовать более интересный контент, посмотрите образцы/папку внутри проекта NanoHttpd или веб-сервер/папку для полностью функционального веб-сервера.