Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer S¨ oren Wellh¨ ofer
Juni 30, 2008
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Inhalte
Client & Server Benutzeroberfl¨ache Zus¨atzliche Klassen
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Grobkonzept
I
Client verbindet sich mit Server
I
Kommunizieren u ¨ber Kommunikationsleitung (Socket)
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Grobkonzept
I
Client verbindet sich mit Server
I
Kommunizieren u ¨ber Kommunikationsleitung (Socket) Kommunikation mittels Protokol
I
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Grobkonzept
I
Client verbindet sich mit Server
I
Kommunizieren u ¨ber Kommunikationsleitung (Socket) Kommunikation mittels Protokol
I I
Tauschen Daten (Bytes) beidseitig u ¨ber separate Datenleitung aus
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Grobkonzept
I
Client verbindet sich mit Server
I
Kommunizieren u ¨ber Kommunikationsleitung (Socket) Kommunikation mittels Protokol
I I
Tauschen Daten (Bytes) beidseitig u ¨ber separate Datenleitung aus
I
Echtzeit¨ ubertragung der Daten
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Grobkonzept
I
Client verbindet sich mit Server
I
Kommunizieren u ¨ber Kommunikationsleitung (Socket) Kommunikation mittels Protokol
I I
Tauschen Daten (Bytes) beidseitig u ¨ber separate Datenleitung aus
I
Echtzeit¨ ubertragung der Daten
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Konzeption Server I
Horchen auf Port (Thread)
I
Verbindungen f¨ ur Kommunikations- u. Datenleitung akzeptieren
Client I
Verbindung mit Server herstellen
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Konzeption Server I
Horchen auf Port (Thread)
I
Verbindungen f¨ ur Kommunikations- u. Datenleitung akzeptieren
Client I
Verbindung mit Server herstellen
Beide I
Kommunikations-Thread f¨ ur stringbasierten Kontrollsequenzenaustausch
I
Statusbasierendes Protokoll
I
Daten (Bytes) senden und empfangen
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Konzeption Server I
Horchen auf Port (Thread)
I
Verbindungen f¨ ur Kommunikations- u. Datenleitung akzeptieren
Client I
Verbindung mit Server herstellen
Beide I
Kommunikations-Thread f¨ ur stringbasierten Kontrollsequenzenaustausch
I
Statusbasierendes Protokoll
I
Daten (Bytes) senden und empfangen
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Klassenrelationen VSuper inherits
VSuper.CntrlCommunicator
Queue
VProtocol
( für Kontrollsequenzen )
VProtocolStati (interface)
VServer
VClient
DataSender inherits
( liest Sockets OutputStream )
DataReceiver ( liest Sockets InputStream )
VServer.ConnectionAccepter ( für Kontrollsequenz−Socket und Daten−Socket )
DataTransferer RWByteArrayContainer
Instanz vererbt
Thread
(thread−safe, alternating read/write)
(
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
AudioPlayer AudioRecorder ( verbunden mit devices )
) S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Client kontaktiert Server (I) (D) (D) (D) (D) (D) (D) (I) (I) (D)
Trying to connect to server Cntrl:Sock[addr=/127d.0.0.1,port=6666,localport=56951] CLI-> out: VCOM AQR INFO CLI-> looping(500ms), status: 2 CLI-> in: 1010527608077;server info2 Data:Sock[addr=/127.0.0.1,port=6666,localport=38748] CLI-> out: 1010527609087 Connection established Client time: Jun 30, 2008 17:06:49 CLI-> looping(500ms), status: 0
Status 2 – Systeminformationsaustausch Status 0 – Idle (Free)
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Client und Server Idle
(D) (D) (D) (D) (D) (D)
CLI-> CLI-> CLI-> CLI-> CLI-> CLI->
out: PING looping(ping=1000ms, timeout), status: 5 in: PONG in: PING looping(ping=10000ms), status: 0 out: PONG
Status 5 – Local host erwartet Pong auf Ping Status 0 – Idle (Free)
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Datentransfer-Sitzung Record“-Knopf gedr¨ uckt ” (I) (D) (D) (D) (I) (I) (D)
Requesting audio datalink out: REQ DATALINK;64 looping(500ms), status: 3 in: ACKN Request acknowledged Audio recorder started looping(500ms), status: 4
(D) SRV-> out: STOP DATALINK (I) 576 bytes total sent (I) Stopping audio data transfer
Status 3 – Vorbereitungsphase auf Datentransfer Status 4 – Datalink (Datentransfer aktiv) Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Datentransfer-Sitzung Record“-Knopf gedr¨ uckt ” (I) (D) (D) (D) (I) (I) (D)
Requesting audio datalink out: REQ DATALINK;64 looping(500ms), status: 3 in: ACKN Request acknowledged Audio recorder started looping(500ms), status: 4
(D) SRV-> out: STOP DATALINK (I) 576 bytes total sent (I) Stopping audio data transfer
Status 3 – Vorbereitungsphase auf Datentransfer Status 4 – Datalink (Datentransfer aktiv) Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Graphical User Interface (GUI) Klassen
UserInterface - Klasse Graphisches Steuerungschnittstelle der Applikation
ActionListener - Klasse Beobachtet den Status der Netzwerkaktivit¨aten der netzwerkrelevanten Instanzen der GUI → modifiziert GUI demgem¨aß
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Graphical User Interface (GUI) Klassen
UserInterface - Klasse Graphisches Steuerungschnittstelle der Applikation
ActionListener - Klasse Beobachtet den Status der Netzwerkaktivit¨aten der netzwerkrelevanten Instanzen der GUI → modifiziert GUI demgem¨aß
StatusInformation - Klasse Informationen
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Graphical User Interface (GUI) Klassen
UserInterface - Klasse Graphisches Steuerungschnittstelle der Applikation
ActionListener - Klasse Beobachtet den Status der Netzwerkaktivit¨aten der netzwerkrelevanten Instanzen der GUI → modifiziert GUI demgem¨aß
StatusInformation - Klasse Informationen
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Programm-Nachrichten-Verarbeitung
NotificationHandler (Ausgabenverwalter) - Klasse I
Ordnet Ausgaben einer Kategorie zu: Information, Error, Warning, Debug
I
Benutzt Streams um Ausgaben first-in-first-out zu verwalten
I
→ Stellt BufferedReader zur Verf¨ ugung
NotificationHandler nh = new NotificationHandler(); nh.notify(NotificationHandler.ERROR, ‘‘Fehlermeldung’’ );
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Programm-Nachrichten-Verarbeitung
NotificationHandler (Ausgabenverwalter) - Klasse I
Ordnet Ausgaben einer Kategorie zu: Information, Error, Warning, Debug
I
Benutzt Streams um Ausgaben first-in-first-out zu verwalten
I
→ Stellt BufferedReader zur Verf¨ ugung
NotificationHandler nh = new NotificationHandler(); nh.notify(NotificationHandler.ERROR, ‘‘Fehlermeldung’’ );
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Programm-Nachrichten-Verarbeitung
NotificationListener (Ausgabenhorcher) - Klasse I
K¨onnen mehere NotificationHandler hinzugef¨ ugt werden
I
Formatiert Ausgaben farbig f¨ ur ein JTextPane (Swing)
NotificationListener nl = new NotificationListener(); nl.addNotificationHandler( nh ); nl.setJTextPane( new JTextPane() );
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer
Client & Server
Benutzeroberfl¨ ache
Zus¨ atzliche Klassen
Programm-Nachrichten-Verarbeitung
NotificationListener (Ausgabenhorcher) - Klasse I
K¨onnen mehere NotificationHandler hinzugef¨ ugt werden
I
Formatiert Ausgaben farbig f¨ ur ein JTextPane (Swing)
NotificationListener nl = new NotificationListener(); nl.addNotificationHandler( nh ); nl.setJTextPane( new JTextPane() );
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer
S¨ oren Wellh¨ ofer