2017-02-16 8 views
0

Ich habe eine aktive Verbindung und ich sende und empfange Daten zwischen Client und Server. Der Server ist ein OBD2 Wifi Dongle.Java Socket schließt nach 5 Minuten, obwohl es aktiv ist

Alles funktioniert gut, aber die Steckdose genau nach 5 Minuten geschlossen. Es gibt keine Inaktivität. Ich kommuniziere ständig mit dem Server.

Haben Sie irgendwelche Ideen? Oder scheint OBD Dongle die Verbindung zu schließen? Weil es immer nach 5 Minuten ecaxtly

+0

in Socket-Programmierkonzept gibt es etwas namens Herzschlag, und Timeout, um die Verbindung für genaue Erwähnung Zeit zu halten, in Heartbeat-Funktion können Sie Daten an Ihren Client vom Server, um die Verbindung lebendig zu halten und .... so, wenn Sie weitere Informationen benötigen oder Ich habe Ihnen keine nützlichen Informationen zur Verfügung gestellt lassen Sie mich mehr Informationen über Ihr Problem, um Ihnen zu helfen –

+0

Ich weiß, aber ich habe eine aktive Kommunikation, so dass ich denke, ein Herzschlag ist nicht notwendig. Und das Timout baut gerade die Verbindung auf? Oder gibt es auch Timeout wenn die Verbindung geschlossen wird? – mosambers

+0

Server verbindet sich mit einem Socket und wartet auf eine Clientverbindung Ich denke, dass Sie in der Lage sein würden, Ihr Problem einfach zu lösen, indem der Client einen Heartbeat-Thread spawn, der für die Dauer des Herzschlags schläft, dann aufwacht, um zu senden Heartbeat-Ping zum Server. Der Heartbeat-Thread auf dem Client würde so lange leben, wie der Client es tut, es würde nur eine Schleife bilden –

Antwort

0

Senden Sie einfach einen Herzschlag, z.B. alle 5 Sekunden ein 3E - dies bedeutet "TESTER PRESENT", hält die Steckdose am Leben, und ist tatsächlich eine Voraussetzung für einige Fahrzeugprotokolle sowieso.

Verwandte Themen