En Android ¿cómo desconecto un socket?

Así que tengo un socket que está conectado a una dirección web externa y cuando se obtiene un mensaje determinado que se supone que se desconecta. He intentado llamar a socket.close() pero socket.isConnected() sigue siendo cierto. No hay suerte buscando una respuesta

4 Solutions collect form web for “En Android ¿cómo desconecto un socket?”

isConnected() sólo le indica si realizó una conexión correcta a un socket. isClosed() le dice si llamó close() .

Echa un vistazo a esta respuesta de chicos https://stackoverflow.com/a/3701249/2453771

tratar

 socket.isClosed() 

Devuelve un boolian, si este socket está cerrado. Referir tomas

Socket.isConnected () le indica si se ha llamado Socket.connect () o no, al igual que para isClosed () y close ().

La confusión sobre estos métodos resulta de confundir el estado del socket, que está bajo el control de la aplicación, con el estado de la conexión global, que está bajo el control del protocolo. IsConnected () y isClosed () le dicen lo que ha hecho al socket. No hay API que no sean de lectura y escritura para determinar el estado de la conexión. "

Oracle documantion <aquí está bien explicado que una vez que llames .close() la conexión está cerrada y puedes verificar por isClosed() .

.close () :

Cierra este zócalo.

Cualquier hilo actualmente bloqueado en una operación de E / S en este socket lanzará una excepción SocketException.

Una vez que se ha cerrado un enchufe, no está disponible para el uso posterior de la red (es decir, no se puede volver a conectar o rebote). Es necesario crear un nuevo socket.

http://developer.android.com/reference/java/net/Socket.html#close ()

Haga una suma de comprobación sobre los datos devueltos, asegúrese de obtener el valor correcto. Si es así y usted llamó cerca y try-catch todo, debería estar bien.

Usted podría ver en un depurador y asegurarse de que nada está goteando.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.