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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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