Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

18&3 GSG Version 1.17 18&3 GSG V- 1.17 GameServer + GUI programmiert April-Juni 2003 von Knut Riechmann als Teil des Software-Projektes JAVA NEWS & MUSIC.

Ähnliche Präsentationen


Präsentation zum Thema: "18&3 GSG Version 1.17 18&3 GSG V- 1.17 GameServer + GUI programmiert April-Juni 2003 von Knut Riechmann als Teil des Software-Projektes JAVA NEWS & MUSIC."—  Präsentation transkript:

1

2 18&3 GSG Version &3 GSG V GameServer + GUI programmiert April-Juni 2003 von Knut Riechmann als Teil des Software-Projektes JAVA NEWS & MUSIC SS03 Fachhochschule Lippe und Höxter

3 18&3 GSG Version 1.17 INHALT: 1 Die Idee 1.1 Ein erstes Layout vom Die Aufgabenverteilung 2Die Server Applikation: 18&3-GSG 2.1Charakterisierung 2.2Die grafische Benutzeroberfläche 1 Die grafische Benutzeroberfläche 2 Die grafische Benutzeroberfläche 3 Die grafische Benutzeroberfläche 4 2.3Aufbau der Klassen a) GameServerGUI.class b) GameServer.class c) GameVerbindung.class d) GameUser.class 3Die Umsetzung in JAVA 3.1UML-Klassendiagramm: Vererbung UML-Klassendiagramm: Assoziationen 3.2a) Auszug aus der Klasse GameserverGUI b) Auszug aus der Klasse GameServer c) Auszug aus der Klasse GameVerbindung Die Methode verbinden(int port) d) Auszug aus der Klasse GameUser e) Teile des Client-Moduls 1 Teile des Client-Moduls 2 4Ein paar Anmerkungen...

4 18&3 GSG Version ) Die Idee Geboren wurde die Idee ein netzwerkfähiges Spiel zu programmieren bei der Erstellung eines ersten Layouts für die JAVA NEWS & MUSIC Seite. Als zu programmierendes Spiel wurde dann eine Variante des bekannten Kartenspiels 17 und 4 ausgewählt.

5 18&3 GSG Version ) Ein erstes Layout vom

6 18&3 GSG Version ) Die Aufgabenverteilung Aufgrund der Größe des Projektes haben wir die Aufgaben in zwei Bereiche gegliedert: Christian Kreienbrinck programmierte das eigentliche Spiel als JAVA-Applet. Der Netzwerkteil wurde von mir programmiert: a) Client Modul, das in das Applet integriert werden konnte b) Eigenständige JAVA-Server-Applikation mit grafischer Benutzeroberfläche

7 18&3 GSG Version ) Die Server-Applikation: 18&3-GSG

8 18&3 GSG Version ) Die Server-Applikation: 18&3 GSG Charakterisierung: - besteht aus vier Klassen - grafische Benutzeroberfläche - voll konfigurierbar - drei Spiele gleichzeitig möglich - absturzsicher durch Selbst-Restart - indirekte Geschwindigkeitssteuerung - automatische Spielernamen-Bestimmung

9 18&3 GSG Version ) Die Server-Applikation: 18&3 GSG Die grafische Benutzeroberfläche 1 Aktuelle Konfiguration LOG Infos Status-Zeile Menü-Leiste

10 18&3 GSG Version ) Die Server-Applikation: 18&3 GSG Die grafische Benutzeroberfläche 2 Es gibt die Möglichkeit sämtliche Servermeldungen in einer LOG- Datei zu speichern. Das Dateiauswahlfenster wurde mit der SWING-Komponente JFileChooser realisiert.

11 18&3 GSG Version ) Die Server-Applikation: 18&3 GSG Die grafische Benutzeroberfläche 3 Sehr viele Parameter der Server lassen sich konfigurieren. Mit TextField und JButton konnte das realisiert werden. Falsche Eingaben werden erkannt. Konfigurationsmodus

12 18&3 GSG Version 1.17 Einfache Info- und Hilfefunktionen wurden mit eigenen JFrame-Objekten realisiert. 2.2) Die Server-Applikation: 18&3 GSG Die grafische Benutzeroberfläche 4

13 18&3 GSG Version ) Die Server-Applikation: 18&3 GSG Aufbau der Klassen: a)class GameServerGUI - stellt die grafische Benutzeroberfläche bereit - ist Erbe der SWING-Klasse JFrame - Realisierung mit SWING-Komponenten -Event-Handling mit Interface ActionListener -läuft als eigenständiger Thread -ruft eine Instanz der Klasse GameServer auf

14 18&3 GSG Version ) Die Server-Applikation: 18&3 GSG Aufbau der Klassen: b)class GameServer - verwaltet den Start / das Sperren von Servern - ist Erbe der Klasse Thread -läuft als eigenständiger Thread -ruft Instanzen der Klasse GameVerbindung auf

15 18&3 GSG Version ) Die Server-Applikation: 18&3 GSG Aufbau der Klassen: c)class GameVerbindung - stellt jeweils einen Server dar - ist Erbe der Klasse Thread -läuft als eigenständiger Thread -arbeitet mit Inputstream und Outputstream -ruft Methoden der Klasse GameUser auf

16 18&3 GSG Version ) Die Server-Applikation: 18&3 GSG Aufbau der Klassen: d)class GameUser - kann anhand von IP-Adressen aus Dateinamen die Spielernamen herausfiltern -stellt einen Dienst für die Klasse GameVerbindung bereit

17 18&3 GSG Version ) Die Umsetzung in JAVA Im Folgenden soll auf die Umsetzung der Programmierung in JAVA eingegangen werden. Da der gesamte Code der 4 Klassen aus genau 1036 Zeilen besteht, soll hier aus Zeitgründen nur auf elementare Stellen eingegangen werden.

18 18&3 GSG Version ) Die Umsetzung in JAVA UML-Klassendiagramm 1: Vererbung

19 18&3 GSG Version ) Die Umsetzung in JAVA UML-Klassendiagramm 2: Assoziationen

20 18&3 GSG Version ) Die Umsetzung in JAVA 1. Übergabe der Konfigurationsparameter 2. Neuer THREAD: GameServer a) Auszug aus der Klasse GameServerGUI

21 18&3 GSG Version ) Die Umsetzung in JAVA b) Auszug aus der Klasse GameServer 1.Überwachung, ob neuer Server gestartet werden darf 2.Start eines neuen Threads: GameVerbindung

22 18&3 GSG Version ) Die Umsetzung in JAVA c) Auszug aus der Klasse GameVerbindung Versucht neue Verbindung aufzubauen Liegen Daten an, werden diese weitergeleitet.

23 18&3 GSG Version ) Die Umsetzung in JAVA c) Auszug aus der Klasse GameVerbindung Die Methode: verbinden(int port)

24 18&3 GSG Version ) Die Umsetzung in JAVA d) Auszug aus der Klasse GameUser -Filterfunktion -Dienstleistung

25 18&3 GSG Version 1.17 e) Teile des Client-Moduls 1 3.2) Die Umsetzung in JAVA import java.io.*; import java.net.*; Socket Verbindung; DataInputStream Eingangsstrom; PrintStream Ausgangsstrom; Thread lesethread; Verbindung = new Socket(" ",6666); Eingangsstrom = new DataInputStream(Verbindung.getInputStream()); Ausgangsstrom = new PrintStream(Verbindung.getOutputStream()); lesethread = new Thread(this); lesethread.start(); Java.io und java.net -Socket + Ströme -Eigener Thread -Verbindung aufbauen -Thread starten

26 18&3 GSG Version ) Die Umsetzung in JAVA e) Teile des Client-Moduls 2 // In diesem Thread wird dauernd auf Daten gewartet public void run() { String Eingangsdaten; try { while (true) { Eingangsdaten = Eingangsstrom.readLine(); if(Eingangsdaten!=null) { Empfang = new Button(); Empfang.setLabel("Eingegangene Daten: "+Eingangsdaten); Fenster.add(Empfang); Fenster.show(); public void actionPerformed (ActionEvent Ereignis) {... if (Ereignis.getSource() == Abschicken) { Nachricht = Eingabefenster.getText(); Ausgangsstrom.println(Nachricht); }... } -run()-Methode -readLine()-Methode -Label + Button -Interface ActionListener -ActionEvent-Objekt -println()-Methode

27 18&3 GSG Version ) Ein paar Anmerkungen... Hürden, die zu überwinden waren: - Sicherheitsaspekte bei JAVA-Applets Testphase ohne Java News & Music - Server - Servergeschwindigkeit Performance contra Benutzerfreundlichkeit - Erfahrungen mit Excelsior JET - Synchronisation Client/Server Informationsaustausch

28 18&3 GSG Version 1.17 ENDE © 2003 by Knut Riechmann, Lemgo


Herunterladen ppt "18&3 GSG Version 1.17 18&3 GSG V- 1.17 GameServer + GUI programmiert April-Juni 2003 von Knut Riechmann als Teil des Software-Projektes JAVA NEWS & MUSIC."

Ähnliche Präsentationen


Google-Anzeigen