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


3.2 Anbindung über Netz

3.2.1 Voraussetzungen für die Netzverbindung

Die Anbindung an das Netz erfolgt über die Windows Sockets. Die Windows Sockets sind ein herstellerunabhängiger Standard zur Netzprogrammierung. Sie definieren einen Satz von Funktionsaufrufen, die durch eine Laufzeit-Bibliothek mit dem Namen winsock.dll realisiert werden.
Die von Terms97801 gewünschte Schnittstellendefinition ist die Version 1.1. Diese Versionsnummer bezieht sich auf die Definition der Funktionsaufrufe und sollte nicht mit der Versionsbezeichnung für die Korrekturstände der winsock.dll eines bestimmten Netzsoftware-Herstellers verwechselt werden.

Die winsock.dll befindet sich im Lieferumfang der Netzsoftware.

Bei Windows95 und WindowsNT ist bereits eine winsock.dll zur Installation enthalten. Für Windows for Workgroups kann der Microsoft-TCP-Stack mit dieser DLL über CompuServe oder Internet ohne weitere Kosten heruntergeladen werden.

Bei dem Verbindungsaufbau über das Netz wird die winsock.dll zuerst im Arbeitsverzeichnis, dann im Windows-Verzeichnis und danach im Pfad gesucht und gestartet. Gelingt dies nicht, zeigt Windows eine System-Fehlermeldung.

HINWEISE: Ist auf einem System keine winsock.dll vorhanden, so genügt es nicht, eine winsock.dll auf das System zu kopieren. Die Sockets müssen zur verwendeten Netzsoftware passen, und das System muß entsprechend konfiguriert sein. Im Normalfall geschieht diese Konfiguration durch eine Installationprozedur. Für die Microsoft-Sockets wird die Installation über Netzwerk-Setup..Treiber.. Protokoll hinzufügen eingeleitet.

Bei Verwendung verschiedener Sockets auf einem System kann die Tatsache genutzt werden, daß Terms97801 die winsock.dll zuerst im eigenen Arbeitsverzeichnis sucht. Das System hat aber immer nur eine winsock.dll zur gleichen Zeit im Einsatz.

3.2.2 Netzverbindung einstellen

Nach Aufruf des Menü-Punkts System...Netz erscheint folgender Dialog:


Abb. 3: Netzverbindung einstellen

Hier kann der Hostname bzw. die IP-Adresse und der Benutzername eingetragen werden. Falls mehrere Hosts zur Verfügung stehen oder mehrere Benutzer/innen mit Terms97801 arbeiten, sollte der Knopf 'Verbindungsliste bearbeiten' gedrückt werden. Im darauf erscheinenden Dialog können entsprechende Einträge vorgenommen werden (siehe Abschnitt 3.2.3).

Für die Netz-Verbindung mit dem Host verwendet Term97801 den RLOGIN-Mechanismus. Dabei werden dem Host der Benutzername, die $TERM-Variable und die Baudrate mitgeteilt.
Wird kein Benutzername angegeben, so erscheint nach dem Verbindungsaufbau die Abfrage der login-Kennung. Wird der Benutzername angegeben und zusätzlich auf der Hostseite der Benutzername in die .rhosts eingetragen, so wird bei der Verbindung weder nach login-Kennung noch nach dem Paßwort gefragt.

Die $TERM-Variable wird von den Anwendungen auf dem Host benutzt, um die passenden Steuersequenzen für das Terminal zu verwenden.

Die Anwendungen des Hosts geben bei einer Verbindung über ein Netz ihre Ausgaben auf eine Pseudo-TTY-Schnittstelle. Die Net-Baudrate gibt an, mit welcher Geschwindigkeit diese Schnittstelle arbeiten soll. Dieser Wert kann mit stty abgefragt werden, hat aber keine Auswirkung auf die tatsächliche Geschwindigkeit, mit der die Zeichen an Terms97801 übergeben werden.

HINWEIS: Wenn die Sicherheitsaspekte einen Start ohne Paßwortabfrage zulassen, kann mit einem Eintrag in der .rhosts, und den zusätzlich aktivierten Terms97801-Optionen 'Verbinde nach Start' und 'Sende Zeichen nach Verbindung', mit dem Start von Terms97801 der Start einer UNIX-Anwendung verbunden werden. Mit passenden Ini-Dateien und dem i-Schalter können so Icons für UNIX-Anwendungen im Windows-Programm-Manager eingerichtet werden.

HINWEIS: Dem Hostnamen oder der IP-Adresse darf durch ein Leerzeichen getrennt eine Portnummer folgen. Wird keine Portnummer angegeben, so wird der Port 513 verwendet, denn auf diesem Port läuft normalerweise der rlogin-Service des UNIX-Rechners.

HINWEIS: Der Hostname und die IP-Adresse müssen in der Windows-seitigen hosts-Datei eingetragen sein. Dies gilt auch dann, wenn nicht der Hostname, sondern die IP-Adresse für den Verbindungsaufbau angegeben werden.
Soll ein Verbindungsaufbau mit IP-Adresse auch funktionieren, wenn die IP-Adresse nicht in der hosts-Datei aufgeführt ist, so muß in der [Net]-Sektion der Terms97801-Ini-Datei folgender Eintrag vorgenommen werden.

[Net]
Resolve=N

3.2.3 Die Netz-Verbindungsliste

Die Netz-Verbindungsliste kann entweder über den Dialog für das Netz oder über den Verbindungs-Dialog für das Netz erreicht werden. Eintragungen in diese Liste sind nur dann nützlich, wenn für die Verbindung mehrere Hosts oder mehrere Benutzer zur Auswahl stehen.


Abb. 4: Netzverbindungsliste

Hier können bis zu 20 Einträge für Kombinationen aus Hostname/IP-Adresse und Benutzername eingegeben werden.
Die Liste wird beim Verbinden zur Auswahl angezeigt, wenn das entsprechende Kästchen im Dialog System..Verbindung angekreuzt ist:


Abb. 5: Verbinde-Dialog für das Netz

Eine Verbindung kann durch Doppelklick in eine Zeile der Verbindungsliste gestartet werden. Wird der Knopf 'Verbinde' gedrückt, so werden für den Verbindungsaufbau die Werte aus den Feldern 'Hostname' und 'Benutzername' benutzt. Diese Werte müssen nicht in der Liste enthalten sein und können vor dem Drücken von 'Verbinde' geändert werden.

3.2.4 Technische Hinweise zur Netzverbindung

Auf der Hostseite läuft ein Netzdämon inetd, der Anfragen an das Netz überwacht. Terms97801 fragt das Netz nach einem 'remote login', was auf der Hostseite den Login-Dämon in.rlogind aktiviert. Der Login-Dämon erzeugt ein Pseudo-TTY pty, das für eine Anwendung wie ein normales Terminal tty aussieht, jedoch eine Verbindung zum Netz statt zur seriellen Terminalleitung ermöglicht.
Die Einstellungen des Pseudo-TTYs können, wie die der normalen TTY-Schnittstelle, mit dem Befehl stty -a angezeigt und gesetzt werden. Dieser Befehl ermöglicht die Einstellung des Bitmodes, der Parität und der Behandlung von Sonderzeichen, wie 'backspace' und 'del'.


Abb. 6: Prozeßbaum bei drei Netzverbindungen und einer seriellen Verbindung

3.2.5 Problembehebung bei Netzverbindung

Bei einer korrekten Socket-Installation sollte Terms97801 auf Anhieb funktionieren. Da Terms97801 oft das erste Programm auf dem Windows-System ist, das die Windows-Sockets benutzt, sind Probleme mit der Netz-Verbindung meist Probleme der Windows-Sockets-Installation.

Es ist sicherlich eine gute Idee, bei Problemen mit dem Netz das Ping-Programm und die Terminalemulation der Netzsoftware zu probieren. Läßt sich mit einem dieser beiden Programme keine Verbindung aufbauen, liegt das Problem eindeutig in der Installation der Netzsoftware.

Funktionieren beide Programme, so ist dies aber keine Garantie für eine saubere Installation der Netzsoftware. Das Ping-Programm verwendet normalerweise nicht die Windows-Sockets, sondern nutzt die herstellerspezifische Schnittstelle der Netzsoftware. Auch die Terminalemulationen der Netzwerkhersteller verwenden meist diese Schnittstelle, und selbst im Falle einer Verwendung der Socket-Schnittstelle lassen sich die Resultate nicht vergleichen, da andere Emulationen oft den TELNET-Mechanismus benutzen, während Terms97801 den RLOGIN-Mechanismus benutzt.
Terms97801 zeigt bei einem Netzfehler einen ausführlichen Fehlerdialog an. Bis zur Anzeige der Fehlermeldung kann einige Zeit vergehen, da vorher eventuell die Timeouts abgelaufen sein müssen. Der Fehler-Dialog hat folgende Gestalt:


Abb. 7: Terms97801-Netzfehleranzeige im Expertenmodus

Die Terms97801-Fehlernummer gibt die Stelle im Code von Terms97801 an, an der der Fehler aufgetreten ist. Der Terms97801-Fehlertext beschreibt den aufgetretenen Fehler.
Außerdem wird auch die Fehlernummer angezeigt, die von der verwendeten Socket-Funktion zurückgegeben wurde. Damit die Bedeutung der Fehlernummer nicht in der Socket-Spezifikation nachgeschlagen werden muß, wird auch die englische Beschreibung des Socket-Fehlers mit ausgegeben. Der Socket-Fehler gibt den Grund an, warum der Fehler aufgetreten ist.

In obigem Beispiel besagt die Terms97801-Fehlermeldung, daß keine Verbindung aufgebaut werden konnte. Der Socket-Fehler gibt an, daß der angewählte Host innerhalb der Timeout-Zeitspanne keine Antwort gab. In diesem konkreten Fall war der Host nicht eingeschaltet.

Derselbe Terms97801-Fehler kann aber auch aus anderen Gründen auftreten, z.B. weil der angegebene Host nicht in der Datei hosts aufgeführt ist (No data record available) oder das Netz nicht läuft (Network is down).

Im Fehlermeldungs-Dialog werden auch die herstellerspezifischen Informationen angezeigt. Diese Information fällt je nach Socket-Hersteller sehr unterschiedlich aus, und reicht von keiner Angabe bis zur Angabe des Datums des Kompilerlaufs.
Die herstellerspezifischen Informationen können nützlich sein, wenn auf einem System verschiedene Sockets installiert sind.

Für den Fall, daß keine Terms97801-Fehlermeldung erscheint und die Verbindung sofort wieder getrennt wird, sollte überprüft werden, ob für das UNIX-System eine rlogin-Berechtigung besteht. Ab UNIX 5.4 kann mit dem Programm truss protokolliert werden, was auf der UNIX-Seite passiert. Hierzu werden mit truss der Netzdämon inetd und seine Kindprozesse beim Verbindungsaufbau beobachtet. Zuerst muß die Prozeß-ID des inetd ermittelt werden. Der truss-Aufruf kann dann so aussehen:

truss -f -o /tmp/terms.truss -p 307

3.2.6 Spezielle Netzoptionen

Terms97801 kann über Einträge in der Ini-Datei mit speziellen Netzoptionen konfiguriert werden. Die meisten Optionen stammen aus der Anfangszeit des Windows-Socket-Standards und dienen dazu, die 'Macken' der ersten Socket-Implementationen der verschiedenen Netzsoftware-Hersteller zu umgehen (workarounds). Mit den anderen Optionen können Einstellungen vorgenommen werden, die durch den Socket-Standard vorhanden sind, aber normalerweise nicht benötigt werden. Für unvorhergesehene Anforderungen sind diese Einstellungen vorsichtshalber verfügbar.
Es wird davon abgeraten, an diesen Optionen etwas zu ändern, solange keine triftigen Gründe vorliegen und keine Kenntnisse über die Funktionsweise der Sockets vorhanden sind.

Alle Netzeinstellungen werden in der Sektion [Net] eingetragen. Die angegebenen Werte sind die Werte, die verwendet werden, falls kein Eintrag vorhanden ist.

NetBufSize=4096 Wert liegt zwischen 0 und 8192 und gibt die Größe des Netz-Puffers an.

FreeSockets=N Y oder N
Mit der Angabe Y wird die winsock.dll beim Verbindungsende freigegeben und für einen neuen Verbindungsaufbau neu angefordert. Diese Angabe hilft, wenn nach einem Verbindungsende ein erneuter Verbindungsaufbau nicht oder erst nach Ablauf eines Timeouts möglich ist.

LingerOnOff=1 0 für kein Linger oder 1 für Linger

Linger=0 Lingerzeit in Sekunden; Wert liegt zwischen 0 und 100

Shutdown=0 -1, 0, 1, oder 2. Diese Werte entsprechen den Werten für die shutdown-Funktion des Socket-APIs. Bei der Angabe von -1 wird die shutdown-Funktion nicht aufgerufen.

Resolve=Y Y oder N
Diese Option gibt an, ob IP-Adressen in der hosts-Datei nachgeschlagen werden.

KeepAlive=N Y oder N
Ist hier Y angegeben, so wird die KeepAlive-Option gesetzt.

TCPDebug=N Y oder N
Ist hier Y angegeben, so wird die Debug-Option gesetzt. Die Wirkung dieser Option hängt von den verwendeten Sockets ab.

Eine weitere Option kann in die Sektion [Connect] eingetragen werden:

[Connect]
Reconnect=Y

Mit dieser Angabe wird eine Verbindung nach der Trennung sofort wieder aufgebaut. Da serielle Verbindungen normalerweise nach dem Verbindungsende wieder eine login-Abfrage starten, ist diese Option nur im Zusammenhang mit Netzverbindungen sinnvoll. Wurde bei einer TCP-Verbindung die login-Kennung innerhalb einer gewissen Zeit nicht beantwortet, trennt sich die Verbindung. Der Grund hierfür ist die Tatsache, daß TCP-Verbindungen auch als gebührenpflichtige Fernverbindungen aufgebaut werden können.
Obige Option ist dann sinnvoll, wenn die TCP-Verbindungen das gleiche Verhalten wie serielle Verbindungen aufweisen sollen.


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