Terms-LogoTerms97801 Version 1.2 Online Handbuch

Inhalt Index Voriges Kapitel Vorige Seite Nächste Seite Nächstes Kapitel Kapitel: 1 2 3 4 5 6 7 8 9 10 11 Anhang


7.4 Filetransfer vom PC nach UNIX

7.4.1 Filetransfer mit Escape-Sequenzen

Eine DOS-Datei kann durch eine Escape-Sequenz von UNIX aus angefordert werden. Hierbei kann der Name der gewünschten Datei angegeben oder ein Dialog zur Auswahl durch den Anwender angezeigt werden.

Für die Übertragung von binären Dateien kann Terms97801 eine Verschlüsselung gemäß uuencode durchführen. Es gelten folgende Escape-Sequenzen:

<ESC>GA<Name>; ASCII-Datei mit Dateinamen
<ESC>GB<Name>; binäre Datei uuencoded mit Dateinamen
<ESC>GC<Name>; ASCII-Datei mit Dateiauswahl-Dialog
<ESC>GD<Name>; binäre Datei uuencoded mit Dateiauswahl-Dialog

Nach abgeschlossener Übertragung wird ein Linefeed und ein EOF (End Of File) gesandt.

Das Linefeed ist notwendig, da ein EOF nur am Zeilenanfang erkannt wird. Beim ASCII-Filetransfer wird die Datei also um eine leere Zeile länger.

Der EOF-Character kann in dem Dialog System..Filetransfer angegeben werden. Dort kann außerdem eingestellt werden, ob die unter DOS üblichen Carridge-Returns vor dem Senden entfernt werden sollen.

Als Beispiele wurden die Shell-Skripte tgf (terms get file) und tgfb (terms get file binary) in den Lieferumfang aufgenommen, von denen letzteres hier erläutert werden soll:

#!/bin/sh
#################################################
# tgfb - terms get file binary (uuencoded)
#################################################

Da die TTY-Parameter verändert werden, muß dafür gesorgt werden, daß sie beim Abbruch zurückgestellt werden.

# error handler - restore stty settings
_error()
{
if [ X$STTYSET = X ]
then
exit
else
stty $STTYSET
exit
fi
}
trap '_error' 2 3

Anzeige der Aufruf-Syntax

USAGE="\nUSAGE:tgfb [dosfile]\n"
# print options
if [ X$1 = X-h ]
then
echo $USAGE
exit
fi

Als erstes werden die aktuellen TTY-Einstellungen gespeichert

# save the stty settings for restore
STTYSET=`stty -g`

und dann alle Nachbearbeitungen abgeschaltet

stty -echo
stty kill ''
stty erase ''
stty -opost

Die zu empfangende Datei muß vorübergehend gespeichert werden und braucht einen eindeutigen Namen.

TMPFILE=/tmp/terms.fget.u.$$

Falls kein Dateiname angegeben wurde, wird er erfragt

# argument is DOS-file
if [ $# -lt 1 ]
then
SOURCE=Dos-File
# ask for file name
echo "\033GD\c"
cat > $TMPFILE
else
SOURCE=$1
# do not ask for file name
echo "\033GB"$2";\c"
cat > $TMPFILE
fi
RESULT=$?

Jetzt wird das TTY wieder in die normale Einstellung gebracht

# restore stty settings
stty $STTYSET

Die Decodierung sollte nur gestartet werden, wenn alles glatt ging

if [ $RESULT -ne 0 ]
then
echo "tgfb:Error: cat returned "$RESULT
exit $RESULT
else
echo "Starte Decodierung"
fi

# uudecode the file

Eingedeutschte Decodierung erwartet Beginn statt BEGIN

unset LANG

Decodiere und melde Ergebnis

uudecode $TMPFILE
RESULT=$?
if [ $RESULT -ne 0 ]
then
echo "tgfb:Error: uudecode returned "$RESULT
else
echo $SOURCE "empfangen\n"
fi

Die temporäre Datei muß gelöscht werden, sonst ist bald die Platte voll

# remove temporary file
rm $TMPFILE

7.4.2 Drag&Drop

Der oben beschriebene Filetransfer wird von der UNIX-Seite initiiert. Ein Start eines Filetransfers von DOS nach UNIX durch DOS hat die Schwierigkeit, daß die UNIX-Seite auf den Empfang einer Datei über stdin vorbereitet sein muß.

Terms97801 kann den Inhalt einer Datei auf die Leitung zum Host geben. Hierzu ist der Menüpunkt Bearbeiten..Datei einfügen vorhanden. Eine Datei kann auch durch Drag&Drop aus dem Datei-Manager an den Host gesendet werden.

Läuft z.B. auf dem UNIX-Host ein Editor, so kann eine Text-Datei über Drag&Drop in das Terms97801-Fenster 'gedroppt' werden. Der Editor empfängt dann die Textdatei, als sei sie über die Tastatur eingegeben worden.

Warnung: Die Auswirkungen, wenn eine binäre Datei, z.B. ein Programm, per Drag&Drop in eine UNIX-Anwendung gegeben wird, sind unvorhersehbar. Aus diesem Grund sollte der Drag&Drop-Mechanismus für Anwender/innen ohne technisches Hintergrundwissen gesperrt werden.


Terms-LogoTerms97801 Version 1.2 Online Handbuch

Inhalt Index Voriges Kapitel Vorige Seite Nächste Seite Nächstes Kapitel Kapitel: 1 2 3 4 5 6 7 8 9 10 11 Anhang