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