У меня есть код http-сервера (я пробовал как TJWS, так и NanoHTTPD), клиент из того же приложения будет подключаться к серверу, работающему на порту 8080, или что-то еще.Не удается заставить работу http-сервера работать на android
Я запускаю объект сервера в отдельной AsyncTask, так что все должно быть в порядке.
Хотя NanoHTTPD полностью не смог запустить другие способы, которые я вижу из журналов TJWS, он говорит что-то вроде;
server listening on 0.0.0.0/0.0.0.0 port:0 localport:8080
Это означает, что сервер успешно запущен, первый вопрос является 0.0.0.0 Связующий адрес приемлемым? Я имею в виду, что это должно быть 127.0.0.1 вместо этого? извините, если это вопрос noob.
Когда я подключаюсь к моему эмулятора с помощью ADB оболочки и запустить NetStat, я могу увидеть следующие строки
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN
tcp 0 0 10.0.2.15:5555 10.0.2.2:52132 ESTABLISHED
tcp6 0 0 :::8080 :::* LISTEN
прибегая к помощи я узнал, что 0 ::: 8080 означает, что сервер прослушивает IPv6 и IPv4, так и это нормально.
Но из моего кода клиента, когда я пытался получить доступ к нему, он продолжает ждать вечности.
моего HTTPClient Код
try {
URL url = new URL("http://0.0.0.0:"+8080+"/media");
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while((line = br.readLine()) != null){
Log.d("server", line);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Я просто попытался «127.0.0.1» и до сих пор жду соединений, есть путь от ADB оболочки, чтобы сделать такие вещи, как телнет? Btw У меня есть все виды разрешений, такие как INTERNET и ACCESS_NETWORK_STATE с учетом –