# Multiclient-Server-Communication



## Marc T. (12. Okt 2013)

Hallo Community,

ich habe mich ein wenig in die Netzwerkprogrammierung eingearbeitet mit Hilfe
eines typischen Chat-Programms. Dabei ging es aber erstmal nur um die Kommunikation
eines einzigen Clients mit dem Server.

Ich möchte nun allerdings einige Schritte weiter kommen.

Die ganz grobe Spezifikation meines Vorhabens:

- 1000 Benutzer müssen sich gleichzeitig beim Server einloggen können.
- Jeweils zwei Benutzer müssen über den Server miteinander kommunizieren können (nicht mehr).

Meine Fragen hierzu:

- Welche Technologie sollte ich hierfür verwenden? (Sockets? Servlet-Applet? WebApplication?)
- Mir ist noch nicht ganz klar, wie die Addresse eines Benutzers aufgebaut ist, sodass ich ihn
  (vom Server aus) direkt identifizieren und ansprechen kann.

Wäre eine Enterprise-Anwendung, bei der die Clients als Applets realisiert sind und mit 
Servlets kommunizieren die beste Variante?

Ziel soll ganz zum Schluss sein, dass jeweils zwei Benutzer ein Spiel gegeneinander 
spielen können und die Ergebnisse auf dem Server gespeichert werden, sodass eine
Art Turnier organisiert werden könnte.

Grüße


----------



## JavaGott (12. Okt 2013)

Das ganze kommt jetzt etwas drauf an wie das "Spiel" nachher aussehen wird.

Reden wir hier von einem Browsergame? Oder einem Client Game (Spieler hat Software bei sich laufen)?


----------



## Marc T. (12. Okt 2013)

Es soll ein Browsergame sein. 
Ich möchte nicht, dass das Spiel installiert werden muss. Es handelt
sich um ein einfaches Brettspiel, ohne großartige Anforderungen an 
eine Hardware.

Als Beispiel:

Minigolf - Achte darauf, möglichst wenige Schläge pro Bahn zu gebrauchen! - Spiele - Playforia - Freie Onlinespiele und coole Avatare

Das wurde auch mit Java entwickelt. Ich wüsste gerne, wie es realisiert
wurde. Ich muss aber nicht zwingend die gleiche Technik verwenden, wenn
es eine besser geeignete gibt.


----------



## Marc T. (12. Okt 2013)

Ich benötige keine Anleitung aller "Hilfe, wie geht das"
Ich benötige tatsächlich nur einen Tipp, welche Technik
verwendet werden sollte. Ich lese überall immer "Java ist
neben HTML/Javascript und Flash relativ gut geeignet für 
Online-Spiele-Programmierung" aber welche Technik 
verwendet wird, finde ich leider nirgendwo. Ich brauche 
nur diesen einen Ansatzpunkt, der Rest wird sich dann 
finden. Wie bereits erwähnt sind die einzigen Bedingungen
an diese Technologie:

- Java!
- 1000 Spieler
- Jeweils zwei spielen Online gegeneinander
- Browsergame (kein Client-Programm)

Müsste doch irgendwie zu realisieren sein


----------



## JavaGott (13. Okt 2013)

Reines Browsergame:

Apache + WebAnwendung
Die Webanwendung enthält die komplette Spiellogik und gibt immer nur den Result via HTML an den Browser. Um es für den Client einfacher zu machen, via AJAX ständig den aktuellen Status abholen lassen.
Authentifizierung der Benuter ganz normal über User + PW auf der Webseite...

Via Applet:

Apache + WebService + Applet
Ich würde einen WebService bereitstellen den du über das Applet ansprechen kannst. 
Authentifizierung der Benuter via User + PW innerhalb des Applets an die Webschnittstelle, diese liefert einen SessionToken zurück der optimalerweise genau für ein Spiel gültig ist...


----------



## Marc T. (13. Okt 2013)

Danke


----------

