Mittels Policies können dem Slave-Interpreter weitere Rechte eingeräumt werden, wie das Zugreifen auf bestimmte Files oder Sockets (Netzverbindungen).
Auf der Basis dieser Technik wurde das Tcl/Tk-Plugin für Netscape (Unix und Win32) sowie den Internet Explorer realisiert. Eine Tcl-Anwendung kann dann mittels
<embed src="url" width=breite height=hoehe>direkt in die Webseite eingebunden werden.
cgilib.tcl
wird es sehr einfach, CGI-Programme in Tcl zu
realisieren.
Das Commando Cgi_Parse
zerlegt die übermittelten Formulardaten
und speichert die Werte in einem assoziativen Array cgi
.
Die Umgebungsvariablen sind im Array env
enthalten.
Cgi_Header
und Cgi_End
bauen Anfang und Ende
der auszugebenden Seite auf. Weitere Funktionen wie H1
und
P
vereinfachen die Konstruktion der Tags.
Da für viele Datenbanken (mSQL, mySQL, PostgreSQL, ADABAS-D, ...) Tcl-Schnittstellen existieren, können so einfache Datenbank-WWW-Gateways geschrieben werden.
Nachteil gegenüber Perl im Apache ist die geringere Performance, da der Tcl-Interpreter bei jedem CGI-Script erst gestartet werden muß. Die Verwendung des Tcl-httpd wird hier eine Beschleunigung bringen.
set sock [socket host port] # Lesen gets $sock line # Schreiben puts $sock $text flush $sock
Beispiel: sock1.tcl
Ein komfortableres Programm zum Testen: sock2.tcl
Genauso einfach läßt sich ein Server installieren:
set port 1234 set serversock [socket -server Accept $port] proc Accept {newsock addr port} { # config newsock ... }Der an die Accept-Prozedur übergebene Socket muß für Fileevent-Handling konfiguriert werden, damit die erste Verbindung nicht die zukünftigen Verbindungen blockiert.
Beispiel: echo_serv.tcl
Vom SunScript-Team wurden mit dieser Technik ein WWW-Server (TclHttpd) und ein HTML-Browser/-Editor (WebTk - leider ohne Tabellen) realisiert. Zu beziehen von http://sunscript.sun.com/TclTkCore