mccae
Senfdazugeber
Hallo!
Ich hab' wieder ein paar Fragen die noch offen sind.
Es wär toll ihr mir helfen könntet...
Netzwerktechnisches:
Thema 1
Ich habe einen Server der in einer Endlosschleife Verbindungen mit accept() akzeptiert und neue Clientthreads erstellt:
Die Zeit die es braucht im den neuen ClientThread zu erstellen, ist verloren.
Dazwischen ist es nicht möglich neue Verbindungen zu akzeptieren.
Wie kann ich dies vermeiden?
Kann ich in mehreren Threads solche accept() schleifen laufen lassen (Mit dem selben Socket)?
Wie kann ich also an Port XY unter IP ABC eine große Anzahl von Clientanfragen bewältigen?
Thema2
Ich habe gehört, es ist nicht gut, wenn man für jeden Client einen Thread erstellt...
Was kann ich sonst tun?
Ich erstelle sogar 3 Threads pro Client:
Es gibt eine Sende- und Empfangsschleife sowie die ClientLogic die empfangenes Auswertet, usw.
Thema3
Beispiel:
Mal angenommen ich habe einen Server der Positionsdaten an seine Clients sendet. (Position, Orientation, und andere Eigenschaften)
Wie kann ich sicherstellen, dass alle Clients unter Berücksichtigung aller Verzögerungen (Latenz,etc.) diese Daten zeitgleich empfangen (es soll zumindest den Anschein haben)?
Denn wenn Client 1 eine Aktion triggert (Drehen zum Beispiel), möchte ich, dass auch die Clients 2 bis 64 diese Drehung (fast) zeitgleich sehen...
Hat da jemand einen Link für mich?
Threads:
Thema4
Ich wurde darauf hingewiesen, keine Threads mit der Threadklasse, sondern einen ExecutorService zu benutzen.
Was ist denn der Unterschied zwischen "new Thread(runnable).start();" und den "Executors"?
Speichertechnisches:
Thema5
Mal angenommen, ich habe die Möglichkeit den von der JVM beanspruchten Memory auf meinem Windows PC zu scannen.
Wie finde ich heraus, wo im Speicher sich zum Beispiel das Attribut "dna" des Objekts "hugo" der Klasse "Mensch" befindet?
Ich würde gerne von außen Checksums berechnen um Manipulationen zu verhindern.
Hat jemand vielleicht entsprechende Literatur-links für mich?
Vielen Dank im Voraus für jede Antwort.
Mit freundlichen Grüßen,
Filip
Ich hab' wieder ein paar Fragen die noch offen sind.
Es wär toll ihr mir helfen könntet...
Netzwerktechnisches:
Thema 1
Ich habe einen Server der in einer Endlosschleife Verbindungen mit accept() akzeptiert und neue Clientthreads erstellt:
Java:
while(noerr_vol){
Socket clientSocket_tmp = srvsock_att.accept();
new Thread(new ClientHandler(clientSocket_tmp)).start();
}
Die Zeit die es braucht im den neuen ClientThread zu erstellen, ist verloren.
Dazwischen ist es nicht möglich neue Verbindungen zu akzeptieren.
Wie kann ich dies vermeiden?
Kann ich in mehreren Threads solche accept() schleifen laufen lassen (Mit dem selben Socket)?
Wie kann ich also an Port XY unter IP ABC eine große Anzahl von Clientanfragen bewältigen?
Thema2
Ich habe gehört, es ist nicht gut, wenn man für jeden Client einen Thread erstellt...
Was kann ich sonst tun?
Ich erstelle sogar 3 Threads pro Client:
Es gibt eine Sende- und Empfangsschleife sowie die ClientLogic die empfangenes Auswertet, usw.
Thema3
Beispiel:
Mal angenommen ich habe einen Server der Positionsdaten an seine Clients sendet. (Position, Orientation, und andere Eigenschaften)
Wie kann ich sicherstellen, dass alle Clients unter Berücksichtigung aller Verzögerungen (Latenz,etc.) diese Daten zeitgleich empfangen (es soll zumindest den Anschein haben)?
Denn wenn Client 1 eine Aktion triggert (Drehen zum Beispiel), möchte ich, dass auch die Clients 2 bis 64 diese Drehung (fast) zeitgleich sehen...
Hat da jemand einen Link für mich?
Threads:
Thema4
Ich wurde darauf hingewiesen, keine Threads mit der Threadklasse, sondern einen ExecutorService zu benutzen.
Was ist denn der Unterschied zwischen "new Thread(runnable).start();" und den "Executors"?
Speichertechnisches:
Thema5
Mal angenommen, ich habe die Möglichkeit den von der JVM beanspruchten Memory auf meinem Windows PC zu scannen.
Wie finde ich heraus, wo im Speicher sich zum Beispiel das Attribut "dna" des Objekts "hugo" der Klasse "Mensch" befindet?
Ich würde gerne von außen Checksums berechnen um Manipulationen zu verhindern.
Hat jemand vielleicht entsprechende Literatur-links für mich?
Vielen Dank im Voraus für jede Antwort.
Mit freundlichen Grüßen,
Filip
Zuletzt bearbeitet: