Netzwerkschicht – Kommunikation
Netzwerkschicht:
Das Package n3po.net enthält die Klassen, welche für die Netzwerkfunktionalität und Kommunikation über Bluetooth übernehmen. Ebenso sind die Klassen für die Kommunikation über SMS in diesem Package enthalten.
Die Klasse BluetoothLayer bildet den Kern der für die Bluetooth-Kommunikation zuständigen Klassen. Sie implementiert Methoden zum Erzeugen eines Server-Threads, der auf eingehende Bluetooth-Verbindungen wartet und einen eigenen Bluetooth-Service auf dem Endgerät registriert.
Nachrichten werden mittels einer SIGNAL – Nummer in verschiedene Typen aufgeteilt, die Klasse BluetoothLayer legt einige SIGNAL-Typen fest, z. B. SIGNAL_DATA für Binärdaten, SIGNAL_MESSAGE für Textnachrichten oder SIGNAL_PACKET für das Informationspaket aus Name, Infotext und Foto. Anhand des SIGNAL kann der Inhalt eines Datenpakets identifiziert und dann entsprechend behandelt werden.
Die Methode query() stößt die nebenläufige Suche nach anderen Bluetooth-Geräten in der Umgebung ( Device Discovery ) in den über das Bewegungsmuster voreingestellten Intervallen an. BluetoothLayer verwaltet bereits bekannte und abgefragte Geräte sowie Geräte mit denen keine Kommunikation mehr erwünscht ist, um Mehrfachverbindungen zu vermeiden. Die Liste mit den unerwünschten Kommunikationspartnern wird über die Konfigurationsklassen persistent gespeichert.
Die innere Klasse Listener implementiert das DiscoveryListener – Interface welches über Callback-Methoden auf Ereignisse wie gefundene Geräte und den Abschluss der Gerätesuche reagiert. Ebenso enthält es die Callback-Methoden für die Reaktion auf gefundene Services auf anderen Geräten und den Abschluss der Service-Suche.
Die interne Klasse DoServiceDiscovery implementiert die Funktionalität für die Suche nach Services auf gefundenen Endgeräten.
Eine aktive Verbindung zu einem anderen Gerät repräsentiert die Klasse Endpoint, sie besitzt jeweils einen Sender- und einen Reader-Thread, welche für die Datenübertragung zwischen den Mobiltelefonen über Input- bzw. Outputstreams zuständig sind. Endpoint verwaltet eine Nachrichten-Queue mit den anstehenden Nachrichten und informiert die Steuerungsschicht durch das BTListener – Interface über aufgetretene Netzwerkevents wie eingehende oder verschickte Nachrichten sowie den Verbindungsaufbau und -abbruch.
Nachrichten sind Instanzen der Klasse DataPacket, die Klasse verfügt über mehrere, überladene Konstruktoren für unterschiedliche Pakettypen wie z. B. das Infopaket, das aus mehreren unterschiedlichen Informationen bestheht, reine Textnachrichten oder Binärdaten.
Für die Kommunikation über Kurznachrichten stehen die Klassen SMSSender und SMSReceiver zur Verfügung, welche jeweils einen Sender bzw. Reader-Thread erzeugen und auf eingehende Nachrichten auf einem definierten Port warten oder Nachrichten verschicken. Durch das Interface SMSListener wird die Steuerungsschicht über Events von der Wireless-Messaging-Schnittstelle benachrichtigt.
Überblick über die n3po.net – Klassen für die Bluetoothfunktionalität.
Ähnliche Artikel zu "Netzwerkschicht – Kommunikation":
Wenn Du noch Fragen zum Thema Netzwerkschicht – Kommunikation hast, dann schreib einfach einen Kommentar - oder schau dir meine Buchtipps an: