Ich habe also einen Socket, der mit einer externen Webadresse verbunden ist und wenn er eine bestimmte Nachricht erhält, sollte er die Verbindung trennen. Ich habe versucht, socket.close()
aufzurufen, aber socket.isConnected()
ist immer noch wahr. Kein Glück auf der Suche nach einer Antwort
probiere
aus %Vor%Liefert einen Boolian, ob dieser Sockel geschlossen ist. Verweisen Sockets
"Wenn Sie Socket () verwenden, das Sie scheinbar übersehen haben, Socket.isConnected () teilt Ihnen mit, ob Socket.connect () existiert angerufen oder nicht. Ähnlich für isClosed () und close ().
Verwirrung über diese Methoden resultiert aus der Verwirrung des Buchse, die von der Anwendung gesteuert wird, mit dem Status der gesamten Verbindung, die unter der Kontrolle des Protokolls ist. isConnected () und isClosed () sagen, was Sie mit dem Socket gemacht haben. Es gibt keine anderen APIs als Lesen und Schreiben zum Bestimmen des Status der Verbindung. "
Oracle-Dokumentation & lt ; Hier ist es gut erklärt, dass, wenn Sie .close()
aufrufen, die Verbindung geschlossen ist und Sie nach isClosed()
suchen können.
.close () :
Schließt diesen Socket.
Jeder Thread, der momentan bei einer E / A-Operation an diesem Socket blockiert wird, wird Werfen Sie eine SocketException.
Sobald eine Steckdose geschlossen wurde, ist sie nicht mehr verfügbar Netzwerknutzung (d. h. kann nicht erneut verbunden oder wiederhergestellt werden). Ein neuer Sockel muss erstellt werden.
Führen Sie eine Prüfsumme der zurückgegebenen Daten aus, stellen Sie sicher, dass Sie den richtigen Wert erhalten. Wenn ja und du nah angerufen und alles versucht hast, sollte alles in Ordnung sein.
Sie könnten in einem Debugger sehen und sicherstellen, dass nichts undicht ist.
Tags und Links android sockets disconnect