#java #sockets #kotlin #kotlin-coroutines
#java #сокеты #kotlin #kotlin-сопрограммы
Вопрос:
Я сканирую локальную сеть с помощью своего настольного приложения Java amp; Kotlin. (диапазон 0-255 с правильным IP-префиксом) Но он пропускает некоторые устройства в сети. Вероятно, из-за тайм-аута. Итак, я попытался увеличить время ожидания, но оно выдает это исключение:
java.net.SocketException: Unrecognized Windows Sockets error: 11050: no further information
at java.base/java.net.Inet4AddressImpl.isReachable0(Native Method)
at java.base/java.net.Inet4AddressImpl.isReachable(Inet4AddressImpl.java:70)
at java.base/java.net.InetAddress.isReachable(InetAddress.java:546)
at java.base/java.net.InetAddress.isReachable(InetAddress.java:505)
at utils.BackgroundScanner$prepareThreads$1.invoke(BackgroundScanner.kt:90)
at utils.BackgroundScanner$prepareThreads$1.invoke(BackgroundScanner.kt:13)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
Код:
val testIp = prefix i
val address = InetAddress.getByName(testIp)
val reachable = try {
address.isReachable(5000)
} catch (f: java.lang.Exception) {
f.printStackTrace()
false
}
Также этот код находится в потоке сопрограммы.
Ответ №1:
Проверьте настройки брандмауэра, если вы используете Windows. В моем случае у меня было исходящее правило, которое блокировало IP, к которому я пытался подключиться.