Sie sind auf Seite 1von 22

Netzwerkbasierte

Client-Server Kommunikation
&
Voice-Transfer

Sören Wellhöfer

Juni 30, 2008


Client & Server Benutzeroberfläche Zusätzliche Klassen

Inhalte

Client & Server

Benutzeroberfläche

Zusätzliche Klassen

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Grobkonzept

I Client verbindet sich mit Server


I Kommunizieren über Kommunikationsleitung (Socket)

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Grobkonzept

I Client verbindet sich mit Server


I Kommunizieren über Kommunikationsleitung (Socket)
I Kommunikation mittels Protokol

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Grobkonzept

I Client verbindet sich mit Server


I Kommunizieren über Kommunikationsleitung (Socket)
I Kommunikation mittels Protokol
I Tauschen Daten (Bytes) beidseitig über separate Datenleitung
aus

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Grobkonzept

I Client verbindet sich mit Server


I Kommunizieren über Kommunikationsleitung (Socket)
I Kommunikation mittels Protokol
I Tauschen Daten (Bytes) beidseitig über separate Datenleitung
aus
I Echtzeitübertragung der Daten

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Grobkonzept

I Client verbindet sich mit Server


I Kommunizieren über Kommunikationsleitung (Socket)
I Kommunikation mittels Protokol
I Tauschen Daten (Bytes) beidseitig über separate Datenleitung
aus
I Echtzeitübertragung der Daten

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Konzeption
Server
I Horchen auf Port (Thread)
I Verbindungen für Kommunikations- u. Datenleitung
akzeptieren

Client
I Verbindung mit Server herstellen

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Konzeption
Server
I Horchen auf Port (Thread)
I Verbindungen für Kommunikations- u. Datenleitung
akzeptieren

Client
I Verbindung mit Server herstellen

Beide
I Kommunikations-Thread für stringbasierten
Kontrollsequenzenaustausch
I Statusbasierendes Protokoll
I Daten (Bytes) senden und empfangen
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer
Client & Server Benutzeroberfläche Zusätzliche Klassen

Konzeption
Server
I Horchen auf Port (Thread)
I Verbindungen für Kommunikations- u. Datenleitung
akzeptieren

Client
I Verbindung mit Server herstellen

Beide
I Kommunikations-Thread für stringbasierten
Kontrollsequenzenaustausch
I Statusbasierendes Protokoll
I Daten (Bytes) senden und empfangen
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer
Client & Server Benutzeroberfläche Zusätzliche Klassen

Klassenrelationen
VSuper
inherits
VSuper.CntrlCommunicator
VProtocol Queue
( für Kontrollsequenzen )

VProtocolStati
(interface)

VServer VClient DataSender


( liest Sockets OutputStream )

inherits
DataReceiver
( liest Sockets InputStream )

VServer.ConnectionAccepter
( für Kontrollsequenz−Socket und Daten−Socket )
DataTransferer

RWByteArrayContainer
(thread−safe, alternating read/write)
Instanz
vererbt
Thread
( AudioPlayer
AudioRecorder
( verbunden mit devices )
)
Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer
Client & Server Benutzeroberfläche Zusätzliche Klassen

Client kontaktiert Server

(I) Trying to connect to server


(D) Cntrl:Sock[addr=/127d.0.0.1,port=6666,localport=56951]
(D) CLI-> out: VCOM AQR INFO
(D) CLI-> looping(500ms), status: 2
(D) CLI-> in: 1010527608077;server info2
(D) Data:Sock[addr=/127.0.0.1,port=6666,localport=38748]
(D) CLI-> out: 1010527609087
(I) Connection established
(I) Client time: Jun 30, 2008 17:06:49
(D) CLI-> looping(500ms), status: 0

Status 2 – Systeminformationsaustausch
Status 0 – Idle (Free)

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Client und Server Idle

(D) CLI-> out: PING


(D) CLI-> looping(ping=1000ms, timeout), status: 5
(D) CLI-> in: PONG
(D) CLI-> in: PING
(D) CLI-> looping(ping=10000ms), status: 0
(D) CLI-> out: PONG

Status 5 – Local host erwartet Pong auf Ping


Status 0 – Idle (Free)

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Datentransfer-Sitzung
Record“-Knopf gedrückt

(I) Requesting audio datalink
(D) out: REQ DATALINK;64
(D) looping(500ms), status: 3
(D) in: ACKN
(I) Request acknowledged
(I) Audio recorder started
(D) 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ören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Datentransfer-Sitzung
Record“-Knopf gedrückt

(I) Requesting audio datalink
(D) out: REQ DATALINK;64
(D) looping(500ms), status: 3
(D) in: ACKN
(I) Request acknowledged
(I) Audio recorder started
(D) 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ören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Graphical User Interface (GUI) Klassen

UserInterface - Klasse
Graphisches Steuerungschnittstelle der Applikation

ActionListener - Klasse
Beobachtet den Status der Netzwerkaktivitäten der
netzwerkrelevanten Instanzen der GUI
→ modifiziert GUI demgemäß

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Graphical User Interface (GUI) Klassen

UserInterface - Klasse
Graphisches Steuerungschnittstelle der Applikation

ActionListener - Klasse
Beobachtet den Status der Netzwerkaktivitäten der
netzwerkrelevanten Instanzen der GUI
→ modifiziert GUI demgemäß

StatusInformation - Klasse
Informationen

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Graphical User Interface (GUI) Klassen

UserInterface - Klasse
Graphisches Steuerungschnittstelle der Applikation

ActionListener - Klasse
Beobachtet den Status der Netzwerkaktivitäten der
netzwerkrelevanten Instanzen der GUI
→ modifiziert GUI demgemäß

StatusInformation - Klasse
Informationen

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche 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ügung

NotificationHandler nh = new NotificationHandler();


nh.notify(NotificationHandler.ERROR,
‘‘Fehlermeldung’’ );

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche 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ügung

NotificationHandler nh = new NotificationHandler();


nh.notify(NotificationHandler.ERROR,
‘‘Fehlermeldung’’ );

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Programm-Nachrichten-Verarbeitung

NotificationListener (Ausgabenhorcher) - Klasse


I Können mehere NotificationHandler hinzugefügt werden
I Formatiert Ausgaben farbig für ein JTextPane (Swing)

NotificationListener nl = new NotificationListener();


nl.addNotificationHandler( nh );
nl.setJTextPane( new JTextPane() );

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer


Client & Server Benutzeroberfläche Zusätzliche Klassen

Programm-Nachrichten-Verarbeitung

NotificationListener (Ausgabenhorcher) - Klasse


I Können mehere NotificationHandler hinzugefügt werden
I Formatiert Ausgaben farbig für ein JTextPane (Swing)

NotificationListener nl = new NotificationListener();


nl.addNotificationHandler( nh );
nl.setJTextPane( new JTextPane() );

Netzwerkbasierte Client-Server Kommunikation & Voice-Transfer Sören Wellhöfer