Zeitsynchronisation, aber wie?

Status
Nicht offen für weitere Antworten.
M

MRQ

Gast
Hallo erstmal.

Ich baue grad nen Browsergame rein auf JAVAbasis (JApplet/Servlet).
Leider habe ich ein Problem bei der Zeitsynchronisation, da ich nicht bei jeder Anfrage die aktuelle Zeit mitschicken will.

Bei Appletstart holt sich das Applet die aktuelle Serverzeit und rechnet diese dann mit Hilfe eines Timers immer hoch.
Der Timer funktioniert auch wunderbar.
Nur leider ... und das ist das Problem ... ist die geholte, aktuelle Serverzeit ja nicht korrekt, da die Kommunikation teilweise etwas dauern kann (Internet kennt man ja).
Somit kann es vorkommen, dass die Zeit ein paar Sekunden hinten dran ist. Dies ist natürlich nicht im meinem Sinne und daher suche ich einen Algorithmus bzw ne Idee, wie ich die Zeit synchronisieren kann.
Hoffe mein Problem ist deutlich geworden.

Danke für eure Hilfe
 

L-ectron-X

Gesperrter Benutzer
Man könnte einen weiteren Thread starten, der sich unabhängig vom restlichen Geschehen darum kümmert, in bestimmten Abständen die Zeit zu besorgen.
 
M

MRQ

Gast
Naja, das lößt das Problem ja nicht.
Problem ist ja dies.

1) Client frag Zeit beim Server ab
2) Server empfängt Anfrage
3) Server sendet Zeit zurück
4) Client bekommt Zeit

Diese Kommunikation benötigt Zeit.
Der Server sendet also die Zeit und der Client empfängt sie ...... dazwischen ist aber schon Zeit vergangen, die Zeit ist also nicht mehr aktuell.
Ob ich die Zeit jetzt einmal oder 1000 mal sende .... die Zeit ist nie aktuell, weil die Kommunikation immer etwas Zeit benötigt.
Ich brauche also ne Möglichkeit die Zeit zu synchronisieren.

Sobald der Client die richtige Zeit hat, ist alles kein Prob mehr ....... der Timer vom Client rechnet dann immer die richtige aktuelle Zeit aus (aber halt abhängig von der initialen Serverzeit).

mfg MRQ
 
S

stev.glasow

Gast
MRQ hat gesagt.:
Naja, das lößt das Problem ja nicht.
Problem ist ja dies.

1) Client frag Zeit beim Server ab
2) Server empfängt Anfrage
3) Server sendet Zeit zurück
4) Client bekommt Zeit

Diese Kommunikation benötigt Zeit.
Der Server sendet also die Zeit und der Client empfängt sie ...... dazwischen ist aber schon Zeit vergangen, die Zeit ist also nicht mehr aktuell.
Ich bezweifel, dass das mehrere Sekunden dauert, höchstens eine und dass kann das Game jawohl verkraften oder?
Wenn nicht, wünsche ich viel Erfolg mit der Lösung von Bleiglanz.
 

Grizzly

Top Contributor
stevg hat gesagt.:
[...]

Ich bezweifel, dass das mehrere Sekunden dauert, höchstens eine und dass kann das Game jawohl verkraften oder?
Wenn nicht, wünsche ich viel Erfolg mit der Lösung von Bleiglanz.

Naja, bei starker Auslastung der Internet-Verbindung kann es schon etwas länger dauern. Aber das mit der Zeit-Synchronisation stelle ich mir trotzdem etwas schwierig vor. Vor allem kenne ich eigentlich kein Spiel im Netzwerk, dass das brauchen würde. Wenn ich da an die ganzen 3D Shooter sowie Rennfahrspiele denke: Die haben so etwas auch nicht. Und bei solchen Spielen ist die Zeit - vor allem die Zeit der Datenübermittlung - ein wichtiger Punkt.

Ich weiss nicht, ob das hilft bzw. im Sinne des Problems ist: Ich würde das einfach wie in den meistens Chats machen. Einfach die Info an den Server schicken und dann eine Bestätigungen zurückschicken, die die Zeit enthält, zu der die Daten am Server angekommen sind. Bringt natürlich nix, wenn Du die Zeit wirklich am Client brauchst. Aber das kann ich mir irgendwie nicht vorstellen.
 
S

stev.glasow

Gast
Grizzly hat gesagt.:
stevg hat gesagt.:
[...]

Ich bezweifel, dass das mehrere Sekunden dauert, höchstens eine und dass kann das Game jawohl verkraften oder?
Wenn nicht, wünsche ich viel Erfolg mit der Lösung von Bleiglanz.

Naja, bei starker Auslastung der Internet-Verbindung kann es schon etwas länger dauern.
Wieso das? Die Zeit an sich bekomme ich in einem byte untergebracht oder der Rest den ich so benötige kann auch nicht so viel sein.
 

Grizzly

Top Contributor
stevg hat gesagt.:
[...]

Naja, bei starker Auslastung der Internet-Verbindung kann es schon etwas länger dauern.
Wieso das? Die Zeit an sich bekomme ich in einem byte untergebracht oder der Rest den ich so benötige kann auch nicht so viel sein.

Das hat ja mal nichts mit der Paket-Größe des eigenen Pakets zu tun. Die Frage ist doch: Was ist da sonst noch alles unterwegs. Dann gibt es noch Router/Firewalls, die Pakete über gewisse Ports priorisieren. Da kann es schon zu Verzögerungen kommen.

Beispiel:
Meine Familie und ich gehen über einen DSL 1024 Zugang online. Wenn alle etwas ziehen und ich bspw. bei SourceForge.net per SSH eingeloggt bin, kann ich zuschauen, wie meine getippten Zeichen langsam erscheinen. Prinizipiell müsste es ja relativ schnell gehen - das Paket besteht ja immer nur aus einem Zeichen (+ Steuercodes, Verschlüsselung u.ä.).
Und bei einer Telnet oder FTP Verbindung sieht es nicht anders aus, obwohl da noch weniger übertragen wird.
 

adsci

Mitglied
sollte so heissen:

mag ja naiv klingen, aber kann man sich nicht einfach nen timestamp bei anfragesendung machen und bei eintreffen der antwort wieder nen timestamp? differenz dann auf die empfangene zeit draufrechnen.

warum funktioniert das nicht?! (hört sich bei bleiglanzes post so an)
 
M

MRQ

Gast
Erstemal Danke für eure Antworten.

1) Ich brauche die echte Zeit ...... jede Sekunde Unterschied ist ne Ungenauigkeit, die meiner Meinung nach unnötig ist.

2) Kann der Lag mehr als eine Sekunde sein

3) Es nützt nicht die Gesamtanfragedauer zu stoppen ..... ich muss nur die Verzögerung vom Server, bis zum Client ermitteln.

4) Wenn das mit nem TimeServer geht wäre das super ...... wie mache ich das mit JAVA? Wie bringe ich meinem Applet bei, seine Zeit (als longWert gespeichert) mit nem TimerServer zu synchronisieren :D .

5) Könnte ich bei jeder Antwort vom Server die aktuelle Zeit ... zu der die Antwort auch generiert wurde .... mitschicken. Damit wäre das Problem ansich ja umgangen, aber ich find die Lösung nicht schön :meld: .

6) Lese ich jetzt den Link von Bleiglanz.

nochmal Danke :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interface, aber die Methoden bleiben teilweise gleich Allgemeine Java-Themen 35
Zrebna Ausführung einer Testmethode in der IDE erfolgreich - failt aber via 'mvn test' Allgemeine Java-Themen 5
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
Thallius Zeitzone zu einem LocalDate hinzufügen aber ohne es zu ändern... Allgemeine Java-Themen 2
L Kursverlauf vorhersagen mit Deeplearning4j, aber komischer Knick am Anfang der Vorhersage Allgemeine Java-Themen 3
M Test geht auf Travis und mit Github Action schief aber nicht lokal Allgemeine Java-Themen 3
Zrebna FileUtils.cleanDirectory() - aber einen sub-Ordner "verschonen" Allgemeine Java-Themen 1
S Java.exe exestiert, aber irgendwie auch nicht Allgemeine Java-Themen 11
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
L Korrektur nach der Berechnung vornehmen, aber wie? Allgemeine Java-Themen 11
S Validation Null aber nicht Blank und muss Email sein Allgemeine Java-Themen 22
P Am Application Server - Selbe files aber trotzdem CNF Allgemeine Java-Themen 2
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
F Input/Output NullPointerException, aber wieso? [Apache POI] Allgemeine Java-Themen 11
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
K Erste Schritte Start einer JAR Datei 2 Wege aber einmal nicht die volle Funktionlität Allgemeine Java-Themen 20
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
T Google OAuth 2.0 aber wie Allgemeine Java-Themen 16
B Web-Anwendung funktioniert mit Java 1.8, aber nicht mit Java 1.7 (auf Client) Allgemeine Java-Themen 5
K Programmfehler aber warum? Allgemeine Java-Themen 5
V Semikolonfehler,aber nicht lösbar.. Allgemeine Java-Themen 6
M String shuffeln, Anfang und Ende aber bleiben gleich Allgemeine Java-Themen 15
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
T .dll in java benutzen aber wie? Allgemeine Java-Themen 4
B Input/Output version.cfg konnte nicht im Klassenpfad gefunden werden, ist aber dort. Allgemeine Java-Themen 0
L Prog läuft in der IDE, hängt sich aber am Mac auf Allgemeine Java-Themen 0
E Sms empfangen aber wie? Allgemeine Java-Themen 6
R Software ausliefern - Aber Wie? Allgemeine Java-Themen 10
D Input/Output Datei wird lokal aber nicht vom Webserver ausgelesen... Allgemeine Java-Themen 2
J Compiler-Fehler Compiliert unter Eclipse aber nicht mit javac Allgemeine Java-Themen 0
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
B Threads Barrier mit wait()/notify() aber nicht alle Prozesse terminieren Allgemeine Java-Themen 2
S XML lesen, verarbeiten, speichern klappt in Eclipse, aber nicht in der JAR Allgemeine Java-Themen 4
R xx.xx.xx <-nur /w & /. aber !2x '.' hintereinander Allgemeine Java-Themen 6
P wieso kann ich auf bluej exportieren aber auf eclipse nicht? Allgemeine Java-Themen 2
H Scanner soll einen Inputredirect einlesen, liest aber nicht jedes Wort ein. Allgemeine Java-Themen 3
A NoSuchMethod aber Methode ist da! Allgemeine Java-Themen 4
F Objekt einer Datei verschieben, aber Verzeichnispfad fehlt Allgemeine Java-Themen 6
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
S java.util.ConcurrentModificationException - aber nur ein Thread Allgemeine Java-Themen 3
nrg Auszulagernder Part, der aber variable Methode/Klasse aufruft Allgemeine Java-Themen 7
F Verschlüsseln, aber welcher Algo Allgemeine Java-Themen 29
H Threads Thread stirbt aber Objekte in ihm leben weiter?! Allgemeine Java-Themen 9
D Internet Abfrage aber mit Warteschleife Allgemeine Java-Themen 6
T Objekt 2x deserialisieren, aber nur 1x im Heap haben? Allgemeine Java-Themen 4
K iText, HTML Einrückung im Document, aber nicht im Paragraph Allgemeine Java-Themen 3
F NullPointerException aber warum ? Allgemeine Java-Themen 9
S exec( "cmd /c") aber Konsole soll offen bleiben Allgemeine Java-Themen 9
K event dispatch thread fehler. Compiler meckert nicht aber der Interpreter? Warum?? Allgemeine Java-Themen 11
J Funktioniert aber nicht gut erweiterbar Allgemeine Java-Themen 3
M net4j in Eclipse, installiert aber nicht im Build-path Allgemeine Java-Themen 4
C Überwachen der Zwischenablage, aber wie? Allgemeine Java-Themen 10
J Process beenden ...aber wie ? Allgemeine Java-Themen 19
D Scanner leer aber bufferedReader nicht?! Allgemeine Java-Themen 2
B Exception wird geworfen, ich darf sie aber nicht abfangen. Allgemeine Java-Themen 10
J Comparable aber nicht immer Allgemeine Java-Themen 15
T JConsole: Klassen werden geladen aber nicht wieder entladen Allgemeine Java-Themen 3
T Datenbank lässt sich un Entwicklungsumgebung öffnen, aus .jar aber nicht Allgemeine Java-Themen 9
Z Boolean Abfrage gibt kein Boolean zurück, aber warum? Allgemeine Java-Themen 6
FoolMoon Datei zeilenweise einlesen, aber nicht die erste Zeile! Allgemeine Java-Themen 3
D Ich möchte meine *.java Dateien in Applets "umschreiben. Aber wie? Allgemeine Java-Themen 3
W Bild Spiegeln, aber Originalbild ausblenden Allgemeine Java-Themen 2
T Array durchsuchen - aber richtig Allgemeine Java-Themen 7
H Layout auslagern, aber wie genau??? Allgemeine Java-Themen 11
M 2 Methoden, 2 Rückgabewerte, aber ein Ergebnis Allgemeine Java-Themen 7
A programm anhalten aber wie? Allgemeine Java-Themen 4
M Ein Array-Wert soll sich verändern, aber 2 tun es? Allgemeine Java-Themen 7
Y ProcessBuilder, Prozess wird gestartet, aber Anwendung nicht Allgemeine Java-Themen 5
J Variabeln immer klein aber. Allgemeine Java-Themen 4
G Software fuer Auktionshaus Filmundo.de aber wie? Allgemeine Java-Themen 2
T Einzelnes Zeichen von der Tastatur einlesen, aber ohne Enter Allgemeine Java-Themen 4
H StartupFolder nutzen! Aber wie? Allgemeine Java-Themen 4
B Programm läuft unter Linux, aber nicht unter Windows Allgemeine Java-Themen 3
S instanceof liefert true, aber cast funktioniert nicht! Allgemeine Java-Themen 6
G Methode akzeptiert List<ParentClass> aber nicht List&l Allgemeine Java-Themen 2
V JAR-File läuft unter Windows und Linux, aber nicht unter OSX Allgemeine Java-Themen 6
M Setter-Methode wird aufgerufen aber ändert nichts? Allgemeine Java-Themen 8
O Vektoren in Vektor sortieren aber mit Java 1.4 (!) Allgemeine Java-Themen 4
G NullPointerException, aber warum? Allgemeine Java-Themen 10
lumo Row Header ist public, zeigt die funktion aber nicht public Allgemeine Java-Themen 8
D Image runterscalieren, aber schlechte Quali? Allgemeine Java-Themen 3
7 Inhalt eines Objekts leeren aber Objekt nicht löschen Allgemeine Java-Themen 17
M HashMap kapselt zwei Objekte aber wie baut man eine Matrix? Allgemeine Java-Themen 2
J 2 Threads - aber nur einer läuft wirklich. Allgemeine Java-Themen 3
H strings in datei verschlüsseln , auslesen mit klartext aber! Allgemeine Java-Themen 2
D JTable aus Eclipse Ok, kompeliert aber nicht Allgemeine Java-Themen 6
J httpclient: Post-method aber trotzdem "URI to long&quot Allgemeine Java-Themen 4
André Uhres BigDecimal in HashSet eingefügt, aber nicht in TreeSet Allgemeine Java-Themen 2
S grafisch programmieren aber nicht applets Allgemeine Java-Themen 13
G Funktioniert zwar erfüllt aber den Zweck nicht. Allgemeine Java-Themen 26
V Rückgabewert von Methode nie erreicht aber gefordert? Allgemeine Java-Themen 6
M Parameter an main übergeben aber wie? Allgemeine Java-Themen 4
A Fehler im Code aber wo? Allgemeine Java-Themen 20
F 2 Arrays vertauschen, aber wie ? Allgemeine Java-Themen 8
C Webseite laden aber mit Cookie Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben