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.
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
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.
Abb. 6: Prozeßbaum bei drei Netzverbindungen und einer seriellen Verbindung
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
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.