Я использую Kotlin сопрограммы для установки Java серверного сокета в Android studio 4.0 Beta 5. Я работаю в эмуляторе на Windows 10. Когда мой очень надежный клиент сокета c пытается подключиться, используя 127.0.0.1 в качестве IP-адреса, он получает ошибку 10061. Эта же клиентская программа много лет хорошо работала с сервером сокетов Java Swing.
Google дает следующее объяснение ошибки 10061:
10061 - это ошибка отказа в соединении, отправленная вам сервером. Вы не смогли установить соединение, потому что целевая машина отказалась от него. Наиболее частой причиной является
неправильно настроенный сервер, полный сервер или неверный порт, указанный клиентом.
Вот мой фрагмент кода
int myPort = 8080;
String localIP = InetAddress.getLocalHost().getHostAddress();
ServerSocket srv = new ServerSocket();
String hostname = InetAddress.getLocalHost().getHostName();
srv.bind(new InetSocketAddress(hostname,myPort));
srv.setSoTimeout(socketAcceptTimeOut); //This sets the timeout on the accept
Socket cli = srv.accept();
Я использовал привязку сервера на основе другого ответа stackoverflow, но это не помогло, когда я его удалил. В любом случае я считаю, что серверный сокет прослушивает 127.0.0.1. Я использую порт 8080, но я пробовал несколько других.
На стороне Android время ожидания srv.accept просто истекает.
Что мне не хватает? Спасибо