Java News & Music Der Chat

Slides:



Advertisements
Ähnliche Präsentationen
programmiert April-Juni 2003 von Knut Riechmann
Advertisements

Seminar Internet-Technologien : Java
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
Ausnahmen HS Merseburg (FH) WS 06/07.
Threads Richard Göbel.
Indirekte Adressierung
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Java-Kurs Grafik Julian Drerup.
JAVA RMI.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Das Roboterprojekt Einführung Der erste Entwurf Das Thread-Konzept Hindernisse Website.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Informatikunterricht mit Java
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Applets Java für’s Web.
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Socket-Programmierung
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Netzwerkprogrammierung
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Informatik Zustandsorientiertes Modellieren und Programmieren 2.4 Datenkapselung 2.4 Datenkapselung Objekte können miteinander kommunizieren, indem.
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Aufruf einer Methode eines Objektes vom Typ „Bruch“
Optimale Ursprungsgerade
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Datenbankanbindung mit
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Letzte Chance!!! Exceptions Thread, Runnable Synchronized Wait, notify, notifyAll Thread States Semaphoren JCSP Swing JOMP Linearizability History Amdahl‘s.
Parallelisierung für Multiprozessor-Maschinen Teil 2.
Java Thread Scheduling Jin Zhou Proseminar Java Thread Scheduling November 2000.
Beispielanwendung von Java Threads
Javelin Internet-based parallel computing using Java.
Hauptseminar 2001 „Parallele Programmierung in Java“ - JPVM- Java Parallel Virtual Machine Referent: Sebastian Steininger.
Programmiervorkurs WS 2014/15 Methoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
2. Kommunikation und Synchronisation von Prozessen 2
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung.
Paketübertragung mit Sockets Was, wohin? Adressierung durch java.net.InetAddress Bsp: adr=InetAddress.getByName(“localhost“); Pakete sind java.net.DatagramPacket.
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 1 Beispiel class SpreadSheet { int cellA1, cellA2, cellA3; synchronized.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Synchronisation mit Monitoren Threads können in Java parallel ablaufen, oft.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Von Cem, Maurice und lars
Grundkurs Informatik mit Java
Tutorstunde 10.
 Präsentation transkript:

Java News & Music Der Chat Aktuellste Version |Stephan __25_06 stephan volgmann | rafael nenna | andre berning

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

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

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

Die Klasse mainmanager – Der Server | Java News & Music | Die Klasse mainmanager – Der Server  Warum ein eigener Server ?  Aufgaben des Servers  Funktionsweise der Klasse mainmanager ---Grundlagen der Klasse erläutern

Die Klasse mainmanager - Warum ? | Java News & Music | Die Klasse mainmanager - Warum ? Applets können untereinander aufgrund der Java Sicherheitsbeschränkungen schlecht kommunizieren ! -Betonung auf Sicherheitsbeschränkungen von Java Applets -Jeder der will kann sich die Klassen auf seinem Webserver installieren oder im privaten Netzwerk Nicht abhängig von Java News and Music, obwohl hierfür entwickelt

Die Klasse mainmanager - Aufgaben | 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

Die Klasse mainmanager - Sockets & User | 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) { ... }

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

Die Klasse mainmanager – Das Senden | 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<users.size(); i++) {... somit erreicht man alle Clients. Die Nachricht besteht aus mehreren Teilen: ... single.output.println(this.username+" ["+Zeit+"]"+ message ); Da alle Verbindungen in einem Vector liegen, kann man diese nacheinander durchgehen und die Nachricht an alle versenden, dies geschieht in der Methode allmembers: -message wird direkt vom usermanager an mainmanager übergeben -Zeit wird von der Klasse time erzeugt -Username wird von der Methode filesearch erzeugt

Die Klasse mainmanager - Die Usernamen | 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; ..... *obwohl eine Lösung mit einem Nickname in den meisten Chats verwendet wird, wird hier ein Username anhand der IP Adresse eines Users ermittelt Dieses wurde in der Methode filesearch erledigt: * Mit Hilfe eines Arrays bestehend aus den Dateinamen des „user“ Verzeichnisses und einer Schleife werden alle IP Adressen der Dateinamen mit der IP Adresse des Clients verglichen. Stimmen Sie überein, wird der Username zugewiesen Anschliessend kann der Username dann mit der Nachricht zusammen gesendet werden.

Die Klasse mainmanager - Die Zeitausgabe | Java News & Music | Die Klasse mainmanager - Die Zeitausgabe  In unserem Chat werden zwei Zeitausgaben generiert Die Startzeit des Servers (siehe nächste Folie) Bei jeder Nachricht wird die aktuelle Zeit eingefügt - Die Zeit in der Nachricht soll den anderen Chatnutzern einen Hinweis darauf geben, wann ein User das letzte Mal einen Kommentar geschrieben hat. Somit kann man verfolgen, ob jemand aktiv am Chat teilnimmt, oder nur „Zuhörer“ ist. - Die Startzeit der Klasse mainmanager und somit die Startzeit des Servers ist ein Hinweis für den Betreiber des Chats

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

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

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

Das Chatplugin – Screenshots Layout | Java News & Music | Das Chatplugin – Screenshots Layout 0 / 0 1 / 0 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); 0 / 1 1 / 1

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

Das Chatplugin – Ermittlung der IP | 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 - Ablauf | Java News & Music | Einstieg in den Chat init() start()

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

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

Das Chatplugin – Eventhandling | Java News & Music | PrintStream outline; 166   public void actionPerformed(ActionEvent e) 167   { 168     String theText = chatInput.getText(); 169     outline.println(theText); 170     chatInput.setText("");   171   }   172    173   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                  } 181  182     }

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

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

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

Das Chatplugin - Thread | Java News & Music | 098   public void stop() 099   { 100     try 101     { 102       mysocket.close(); 103     } 104       …. ……. 109  110     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   ….

Das Chatplugin - Ablauf | Java News & Music |

Das Chatplugin - Ablauf | Java News & Music |

Das Chatplugin - Ablauf | Java News & Music |

Das Chatplugin - Ablauf | Java News & Music |

Die Verbindungen – Die Klasse usermanager | Java News & Music | Die Funktionen im Überblick:  Zuständig für Verbindungen zwischen den User Übernimmt die vom Server übergebenen Verbindungen 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 Verbindungen – Die Klasse usermanager | Java News & Music | Anfrage Übergabe der Verbindungen Aufbau der Ein / Ausgabe- Ströme

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

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

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

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

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

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

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

How To Use – Die Installation | Java News & Music | 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

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