У меня проблемы с подключением сокета от телефона Android к компьютеру, на котором работает netcat и прослушивает порт (5555).
Что я запускаю в своем приложении для Android:
try {
Socket s = new Socket("My IP number here (not local IP)", 5555);
DataOutputStream outToServer = new DataOutputStream(s.getOutputStream());
outToServer.writeBytes("Hello!");
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Это строка, которую я использую для netcat: nc -l 5555
Я не уверен, что яотсутствует ... Я перенаправил порт на маршрутизаторе и перезагрузил маршрутизатор.Добавлено разрешение на интернет в моем приложении для Android.Телефон подключен через 3G, а мой компьютер - через широкополосный доступ.Netcat разрешен в моем брандмауэре.
При попытке подключения в приложении появляется ошибка SocketTimeoutException
.
Полагаю, маршрутизатор позаботится о том, какой компьютер в локальной сети получит запрос.
Кто-нибудь знает, что мне не хватает?
РЕДАКТИРОВАТЬ: Я думаю, я мог бы найти проблему .. У меня есть два варианта на моем маршрутизаторе Virtual Server
и Port forwarding
.Я не знаю, какой установить порт 5555 в обоих UDP / TCP. Насколько я понимаю, это Virtual Server
Я должен использовать вместо перенаправления портов?Если так, может кто-то прояснить разницу между ними?