Ich musste Android-Server-Anwendung erstellen, die auf eingehende Verbindungen warten musste. Es ist nicht-root-Anwendung und es hört zufällig hohen Port. Der Code ist trivial und funktioniert ausgezeichnet auf dem Desktop-Java, er überwacht nur den Port und bietet ein sehr einfaches benutzerdefiniertes Anfrage/Antwort-Protokoll.Android-Server: warum Timeout eingehende Verbindungen nach dem Zufallsprinzip?
Ich fand jedoch, dass aus irgendeinem Grund sogar Android-Anwendung ist in accept
Methode jetzt (d. H. Es soll auf eingehende Verbindungen warten), die Verbindung Zeit oft aus.
Ich habe auch festgestellt, dass manchmal sogar System-Anwendung (ADB-Server zum Beispiel) eingehende Verbindungen regelmäßig ohne Grund abläuft. Siehe zum Beispiel paping
Ausgabe:
paping -p 5555 192.168.0.105
paping v1.5.5 - Copyright (c) 2011 Mike Lovell
Connecting to 192.168.0.105 on TCP 5555:
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connection timed out
Connected to 192.168.0.105: time=118.02ms protocol=TCP port=5555
Connected to 192.168.0.105: time=140.02ms protocol=TCP port=5555
Connected to 192.168.0.105: time=57.01ms protocol=TCP port=5555
Connected to 192.168.0.105: time=77.51ms protocol=TCP port=5555
Connected to 192.168.0.105: time=97.01ms protocol=TCP port=5555
Connected to 192.168.0.105: time=122.02ms protocol=TCP port=5555
Connected to 192.168.0.105: time=135.52ms protocol=TCP port=5555
Connected to 192.168.0.105: time=52.01ms protocol=TCP port=5555
Connected to 192.168.0.105: time=72.51ms protocol=TCP port=5555
Connected to 192.168.0.105: time=92.51ms protocol=TCP port=5555
Connected to 192.168.0.105: time=105.51ms protocol=TCP port=5555
Connected to 192.168.0.105: time=5.50ms protocol=TCP port=5555
So sieht es aus wie die Geräte mal aus einigen eingehenden Daten und beginnen danach zu akzeptieren, später mal aus Zufall. Und ADB ist eine Systemanwendung, also sollte es allen Richtlinien folgen und vergleichsweise fehlerfrei sein.
Kann jemand das Problem beheben und Android-Gerät für eingehende Verbindungen schnell beantworten? Andernfalls wird jede Anwendung, die eingehenden Datenverkehr benötigt, fehlerhaft und unzuverlässig sein.
'die Verbindungszeit often.' out ?? Welche Verbindung? Der Server hat zugehört, oder? Bitte bereinigen. – greenapps
Ja, der Server hört zu, und aus irgendeinem Grund gibt es eine zufällige Verbindung für eingehende Verbindungen (kann überhaupt keine Verbindung herstellen), selbst Java wartet innerhalb des 'accept' Methodenaufrufs. – Vitaliy
Sie beschuldigen keinen fehlerhaften Router? Versuchte andere Geräte? – greenapps