Android говорит, что сокет подключен, даже если он не находится в той же сетиJAVA

Программисты JAVA общаются здесь
Anonymous
Android говорит, что сокет подключен, даже если он не находится в той же сети

Сообщение Anonymous »

У меня проблема с конкретным устройством (Samsung Galaxy A54, но с одним конкретным).
Я пытаюсь подключиться к сокету, находясь в другой сети (IP-адрес не указан). даже не пингуется), что, как я ожидаю, либо истечет по тайм-ауту, либо, по крайней мере, выдаст другое исключение.
Вместо этого оно просто возвращается, а socket.isConnected даже возвращает true.

Код: Выделить всё

@Throws(IOException::class)
private fun openSocket(address: InetSocketAddress): Boolean {
val socket = createSocket()
return try {
socket.connect(address, 2500)
this.socket = socket
socket.isConnected
} catch (e: ConnectException) {
e.printStackTrace()
false
} catch (e: SocketTimeoutException) {
e.printStackTrace()
false
}
catch (e: Exception) {
e.printStackTrace()
false
}
}
Я пробовал это на разных устройствах (в том числе на другом Galaxy A54), и все работает так, как ожидалось.
Я также пробовал менять

Код: Выделить всё

socket.isConnected
в socket.isConnected && !socket.isClosed, но он все равно возвращает true.

Подробнее здесь: https://stackoverflow.com/questions/784 ... me-network

Вернуться в «JAVA»