Hallo, ich habe ein kleines Problem bei der Programmierung eines kleinen Netzwerkspiels.
Folgende Situation:
Es gibt einen Server mit dem sich mehrere Clients verbinden können. Der Server aktualisiert im 20ms Abstand den Spielstatus und sendet den aktuellen Status an alle Clients. Zum senden wird ein ObjectOutputStream verwendet. Das gesendete Status-Objekt ist nicht besonders groß, es enthält nur einige Koordinaten.
Solang sich nur ein Client mit dem Server verbunden hat, läuft alles rund. Wenn sich allerdings ein zweiter Client mit dem Server verbindet, kommt es im Abstand von ungefähr 2s vor, dass das Senden des Status-Objektes relativ lange dauert.
Genauer gesagt: Der Aufruf von
braucht 0,5s bis >1s.
Allerdings dauert das Senden nur bei einem der beiden Clients so lange (unterschiedlich bei welchem). Das Senden des selben Status-Objektes an den jeweils anderen Client verläuft ohne Probleme, weshalb es wohl nicht an dem gesendetem Objekt liegen kann. Zudem tritt das Problem auch auf wenn immer das gleiche Objekt an die Clients gesendet wird.
Hat vielleicht jemand eine Idee an was das liegen könnte?
Folgende Situation:
Es gibt einen Server mit dem sich mehrere Clients verbinden können. Der Server aktualisiert im 20ms Abstand den Spielstatus und sendet den aktuellen Status an alle Clients. Zum senden wird ein ObjectOutputStream verwendet. Das gesendete Status-Objekt ist nicht besonders groß, es enthält nur einige Koordinaten.
Solang sich nur ein Client mit dem Server verbunden hat, läuft alles rund. Wenn sich allerdings ein zweiter Client mit dem Server verbindet, kommt es im Abstand von ungefähr 2s vor, dass das Senden des Status-Objektes relativ lange dauert.
Genauer gesagt: Der Aufruf von
Code:
objectStream.writeObject(state);
objectStream.flush();
Allerdings dauert das Senden nur bei einem der beiden Clients so lange (unterschiedlich bei welchem). Das Senden des selben Status-Objektes an den jeweils anderen Client verläuft ohne Probleme, weshalb es wohl nicht an dem gesendetem Objekt liegen kann. Zudem tritt das Problem auch auf wenn immer das gleiche Objekt an die Clients gesendet wird.
Hat vielleicht jemand eine Idee an was das liegen könnte?