Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der Chat stephan volgmann | rafael nenna | andre berning Java News & Music.

Ähnliche Präsentationen


Präsentation zum Thema: "Der Chat stephan volgmann | rafael nenna | andre berning Java News & Music."—  Präsentation transkript:

1

2 Der Chat stephan volgmann | rafael nenna | andre berning Java News & Music

3 | Java News & Music | Inhalt Ziele und Anforderungen Aufgabenstellung Das Chatplugin Der Server - Klasse Die Ein- Ausgabeströme der Nachrichten Simulation des Chats Installation

4 | Java News & Music | Ziele & Anforderungen Der Chat als kommunikatives Forum & Treffpunkt Austausch von Nachrichten & Informationen Attraktivitätssteigerung von Java News & Music

5 | Java News & Music | Aufgabenstellung Das Chatplugin als Applet Rafael Nenna Aufgabenverteilung: Ein Java Chat im Rahmen der Projektarbeit Java News & Music Der Server Andre Berning Die Ein-/Ausgabeströme Stephan Volgmann

6 | Java News & Music | Die Klasse mainmanager – Der Server Aufgaben des Servers Funktionsweise der Klasse mainmanager Warum ein eigener Server ?

7 | Java News & Music | Die Klasse mainmanager - Warum ? Applets können untereinander aufgrund der Java Sicherheitsbeschränkungen schlecht kommunizieren !

8 | Java News & Music | Die Klasse mainmanager - Aufgaben Aufbau der Sockets und Verwaltung der einzelnen Chatteilnehmer Senden der Nachrichten an alle User Zuweisung des Usernamens anhand der IP-Adresse

9 | Java News & Music | Die Klasse mainmanager - Sockets & User Aufbau eines ServerSockets am Port 5666: try { wait = new ServerSocket(PORT); } catch (IOException e) {...} Anschließend dauerhafte Überwachung des Ports durch einen Thread In der run-Methode des Threads wird Client Verbindung akzeptiert und in einem gemeinsamen Vector gespeichert: public void run(){ try { while(true) { Socket client=wait.accept(); usermanager newbie = new usermanager(this, client); users.addElement(newbie); } } catch (IOException e) {... }

10 | Java News & Music | public void run(){ try { while(true) { Socket client=wait.accept(); usermanager newbie = new usermanager(this, client); users.addElement(newbie); } } catch (IOException e) {... } -dem Objekt newbie werden zwei Parameter übergeben: 1.this (also das Objekt newbie) 2.Client-(also ein Socket) -die Weiterverarbeitung erfolgt in der Klasse userrmanager Die Klasse mainmanager - Sockets & User -Was passiert bei einer Verbindungsaufnahme?

11 | Java News & Music | Die Klasse mainmanager – Das Senden Wie sendet mainmanager die Nachricht an alle Chatter? public void allmembers(String msg ){ int i; usermanager single; for (i=0; i

12 | Java News & Music | Die Klasse mainmanager - Die Usernamen Nickname oder Username? Wie Username ? adress = file.substring( file.indexOf(""), file.indexOf("_") ); username = file.substring( file.indexOf("_")+1, file.lastIndexOf("_") ); if (adress.equals(ipadress)) { this.username = username;..... Anschliessend kann der Username dann mit der Nachricht zusammen gesendet werden.

13 | Java News & Music | Die Klasse mainmanager - Die Zeitausgabe In unserem Chat werden zwei Zeitausgaben generiert

14 | Java News & Music | Das Chatplugin - Realisierung Aufgaben Realisierung Anforderung

15 | Java News & Music | Das Chatplugin - Layout Probleme GridBagLayout Anforderungen

16 | Java News & Music | 0 / 0 1 / 0 0 / 1 1 / 1 Das Chatplugin – Screenshots Layout 022 public void init() { GridBagLayout gbl = new GridBagLayout(); 027 this.setLayout(gbl); 028 this.setBackground(Color.lightGray); GridBagConstraints c = new GridBagConstraints(); 031 c.fill = GridBagConstraints.BOTH; 032 c.insets = new Insets(4,4,4,4); outputarea = new TextArea 035 ("",23,1,outputarea.SCROLLBARS_VERTICAL_ONLY ); 036 chatInput = new TextField("Ihre Nachricht",40);

17 | Java News & Music | 0 / 0 1 / 0 0 / 1 1 / 1 Das Chatplugin – Screenshots Layout 040 //TextArea outputarea 041 c.gridx = 0; 042 c.gridy = 0; 043 c.gridwidth = 2; 044 gbl.setConstraints(outputarea, c); 045 add(outputarea); 046 outputarea.setEditable(false);

18 | Java News & Music | Socketverbindung Problem = IP des Hosts + Portnummer Das Chatplugin - Die Kommunikation

19 | Java News & Music | 067 public void start() 068 { 069 try 070 { 071 URL myURL = this.getCodeBase(); 072 String myHostIP = myURL.getHost(); 073 mysocket = new Socket(myHostIP, PORT); Das Chatplugin – Ermittlung der IP

20 | Java News & Music | Das Chatplugin - Ablauf Einstieg in den Chat init() start()

21 | Java News & Music | Das Chatplugin – Thread 067 public void start() 068 { if (mythread == null) 090 { 091 mythread = new Thread(this); 092 mythread.setPriority(Thread.MIN_PRIORITY); 093 mythread.start(); 094 } 095 }

22 | Java News & Music | Das Chatplugin - Texteingabe Benutzer Rudi gibt Nachricht ein:Hello World Drücken der send-Schaltfläche oder der Enter-Taste

23 | Java News & Music | Das Chatplugin – Eventhandling 166 public void actionPerformed(ActionEvent e) 167 { 168 String theText = chatInput.getText(); 169 outline.println(theText); 170 chatInput.setText(""); 171 } public void keyPressed (KeyEvent e) 174 { 175 if (e.getKeyCode()==KeyEvent.VK_ENTER) 176 { 177 String theText = chatInput.getText(); 178 outline.println(theText); 179 chatInput.setText(""); 180 } } PrintStream outline;

24 | Java News & Music | Das Chatplugin – PrintStream PrintStream outline; chatplugin.class manmanager.class usermanager.class time.class Hello World

25 | Java News & Music | Das Chatplugin - Lauschen chatplugin.class Socketverbindung auf Port 5666

26 | Java News & Music | Das Chatplugin - Lesen chatplugin.class BufferedReader inputline; 144 while(true) 145 { 146 line = inputline.readLine(); 147 if(line!=null) 148 outputarea.append(line+'\n' ); 149 }

27 | Java News & Music | Das Chatplugin - Thread 098 public void stop() 099 { 100 try 101 { 102 mysocket.close(); 103 } 104 …. …… if ((mythread !=null) && mythread.isAlive()) 111 { 112 mythread.interrupt(); 113 mythread = null; 114 } 115 } 136 public void run() 137 { 138 while(mythread.isInterrupted() == false) 139 ….

28 | Java News & Music | Das Chatplugin - Ablauf

29 | Java News & Music | Das Chatplugin - Ablauf

30 | Java News & Music | Das Chatplugin - Ablauf

31 | Java News & Music | Das Chatplugin - Ablauf

32 | Java News & Music | Die Verbindungen – Die Klasse usermanager Zuständig für Verbindungen zwischen den User Baut einen DataInputStream u. PrintStream auf Schickt die Nachrichten an den Mainmanager zur Methode allmembers zurück Ermittelt die IP- Adresse der User und übergibt sie der Methode filesearch in der Klasse mainmanager Die Funktionen im Überblick: Übernimmt die vom Server übergebenen Verbindungen

33 | Java News & Music | Die Verbindungen – Die Klasse usermanager Anfrage Übergabe der Verbindungen Aufbau der Ein / Ausgabe- Ströme

34 | Java News & Music | Die Verbindungen – Die Klasse usermanager UML - Diagramm

35 | Java News & Music | Die Verbindungen – Die Klasse usermanager Übergabe der Verbindungen vom Server Importieren der verwendeten Pakete DataInputStream PrintStream Socket- Verbindung

36 | Java News & Music | Die Verbindungen – Die Klasse usermanager Ermitteln der IP Aufbau der Ein- und Ausgabeströme

37 | Java News & Music | Die Verbindungen – Die Klasse usermanager Rückgabe der IP- Adresse Rückgabe der Chat- Nachrichten an die Methode allmembers

38 | Java News & Music | Die Klasse Time Generierung der aktuellen Serverzeit Rückgabe der Uhrzeit an die Klasse mainmanager

39 | Java News & Music | Die Simulation – Eine Nachricht im Chat mainmanager.class startenauf Verbindung warten usermanager erhält Socketverbindung Lauschen auf Nachricht von Chatter Lesen der Nachricht Ermitteln der IP Zuweisung des Benutzer- namens Benutzername + Zeit + Nachricht Weitergabe an Chatter

40 | Java News & Music | Die Simulation – Eine Nachricht im Chat

41 | Java News & Music | How To Use – Die Installation Grundlagen Die Klasse mainmanager muss im gleichen Verzeichnis liegen wie chatplugin und usermanager Über eine Konsole kann man den Server mit: java mainmanager starten Ist der Server gestartet, wird die schon erwähnte Startzeit ausgegeben

42 | Java News & Music | Der Chat – Projektarbeit 2003 stephan volgmann | rafael nenna | andre berning


Herunterladen ppt "Der Chat stephan volgmann | rafael nenna | andre berning Java News & Music."

Ähnliche Präsentationen


Google-Anzeigen