![]() |
[Studienarbeiten: Kommunikation zwischen PDAs] | ![]() |
IrChat ist ein plattformübergreifendes Chat-Programm für zwei beliebige PDAs (Personal Digital Assistant) über die Infrarotschnittstelle. Als Kommunikationsprotokoll dient das von der IrDA (Infrared Data Association) definierte TinyTP. Im Rahmen dieser Studienarbeit wurden Clients für die Betriebsysteme WindowsCE und Psions EPOC32 entwickelt.
IrChat bietet zusätzlich zum Chat noch die Möglichkeit, Dateien zu übertragen, was allerdings ohne jegliche Konvertierung geschieht.
Für eine Verbindung mit IrChat muß einer der beiden Partner einen Server starten und
der andere zu diesem Server eine Verbindung öffnen. Besteht diese Verbindung, können
beide Partner Textmeldungen eingeben und diese an den Partner schicken. Zur
Identifizierung kann jeder dem anderen seinen Benutzernamen mitteilen, den dieser dann
zusammen mit jeder von dort kommenden Meldung anzeigen sollte.
Textmeldungen werden ohne weitere Protokollinformationen in 8-Bit ASCII übertragen. Für
die Übertragung des Benutzernamens und den eingebauten Filetransfer waren aber eine Reihe
von Steuerkommandos nötig. Um diese zu übertragen wurde ein Escape-Character definiert,
der im Text nicht vorkommen darf. Da es sich bei diesem Zeichen um das Zeichen <Esc>
mit dem ASCII-Code 27 handelt ist dies aber in einem Chatprogramm sehr unwahrscheinlich.
Deshalb wurde auf weitere Maßnahmen wie Character-Stuffing verzichtet. Um das Protokoll
möglichst einfach zu halten, wurden für die Kommandos noch folgende Konventionen
fesgelegt:
USER: U<USERNAME>
Teilt der Gegenstelle den eigenen Benutzernamen mit.
FILENAME: N<Name>
Namen der Quelldatei übermitteln.
FILEREADY: R
Teilt der Gegenseite mit, daß die Datei zum Senden bereit ist. Nach diesem Kommando wartet die Senderseite auf eine Antwort des Empfängers. Diese kann entweder FILEACK oder FILECANCEL sein.
FILEACK: A
Antwort des Empfängers auf FILEREADY. File wird akzeptiert. Sender sendet nun Datenblöcke.
FILECANCEL: C
Antwort des Empfängers auf FILEREADY. Filetransfer abgelehnt.
BLOCK: B<Datenblock>
Es wird ein Datenblock übertragen.
Sender und Empfänger können jederzeit mit EscC die Übertragung abbrechen.
Die folgenden beiden Grafiken, zeigen die Dateiübertragung auf Empfänger- und Senderseite als endliche Automaten. Die Zustandsübergänge sind dabei so beschriftet, daß zunächst das empfangene Kommandozeichen (oder _) für einen spontanen Übergang) und dann durch Komma getrennt das gesendete Steuerzeichen (oder _ für keine Ausgabe) angegeben ist.
![]() |
[Studienarbeiten: Kommunikation zwischen PDAs] | ![]() |