Vous êtes sur la page 1sur 26

UNIVERISTE ABDELMALEK ESSAADI Facult des Sciences et Techniques de Tanger Dpartement Informatique

Master Systmes Informatiques et Rseaux

Le Langage TCL/TK
PROGRAMMATION RSEAU

Dr.BOUHORMA Pr.ANOUAR

Le Langage TCL
2

Tool Command Language: Dvelopp par :Professor John K. Ousterhout Universit de California Berkeley

Trs puissant, Facile apprendre , Dynamique; adapt une trs large gamme d'utilisations, Langage Scripts avec syntaxe du shell UNIX, Oprations Commandes,

FST de Tanger

25/10/2010

Le Langage TCL
3

Support par plusieurs Plateformes (Win, Mac Os, Linux, Solaris) Compil interprt Peut avoir extension C, Flexible : Extensibilit aux concepts de la POO

FST de Tanger

25/10/2010

Le Langage TCL
4

Platforme TK : kit graphique

Analogue Awt et swing de JAVA,

Comporte des lments basiques : widgets (boutons, zone de textes, menus,)

FST de Tanger

25/10/2010

Le Langage TCL
5

INSTALLATION

A. Pour Windows:

ActiveTcl installation Graphique,

B. Pour Les Systmes UNIX


Ubuntu 9.04 sudo apt-get install tcl8.5 sudo apt-get install tk8.5.

FST de Tanger

25/10/2010

Le Langage TCL
6

Outil Supportant le TCL ECLIPSE


Kit de developpement TCL Interprteur : tclsh85

http://www.eclipse.org/downloads/
FST de Tanger

25/10/2010

Le Langage TCL
7

Outil Supportant le TCL ECLIPSE

FST de Tanger

25/10/2010

Le Langage TCL
8

Outil Supportant le TCL KOMODO

http://www.activestate.com/komodo
FST de Tanger

25/10/2010

Le Langage TCL
9

Outil Supportant le TCL Tkcon

FST de Tanger

25/10/2010

Le Langage TCL
10

Outil Supportant le TCL NS2 (Network Simulator)

FST de Tanger

25/10/2010

Le Langage TCL
11

Quelques Commandes : Les Commentaires #Ceci Dsigne un commentaire Afficher un message puts " Ceci est un message" Initialiser une valeur set VAL 3 Fonction Mathmatiques Supports
Abs cosh isqrt sin acos double log sinh asin entier log10 sqrt atan exp max srand atan2 floor min tan bool fmod pow tanh ceil hypot rand wide cos int round

FST de Tanger

25/10/2010

Le Langage TCL
12

Quelques Commandes :
Exemple 1:
% set x 1 % set w ABCDEF % expr { [string length $w]-2*$x } Rsultat? 4 Exemple 3: %puts [expr { sqrt($Y) }]\n" Rsultat? 16 Exemple 4: % set A 3 % set B 4 % puts [expr {hypot($A,$B)}]" Rsultat? 05

Exemple 2:
set X 100 set Y 256 set Z [expr {$Y + $X}] set Z_LABEL "$Y plus $X est $Z"} Rsultat? 256 plus 100 est 356 % % % %

http://www.activestate.com/activetcl/
FST de Tanger

25/10/2010

Le Langage TCL
13

Quelques Commandes :
Exemple 1: set x 1 if {$x == 2} {puts "$x est 2"} else {puts "$x diffrent de 2"} Rsultat? 1 diffrent de2
Exemple 3:

for {set i 0} {$i < 10} {incr i} { puts " La valeur de I est : $i" } Rsultat? La valeur de I est : 0
La valeur de I est : 1 La valeur de I est : 2 La valeur de I est : 3 La valeur de I est : 4 La valeur de I est : 5 La valeur de I est : 6 La valeur de I est : 7 La valeur de I est : 8 La valeur de I est : 9

Exemple 2: set i 1; while {$i<=10} {incr i} Puts $i; Expr {2/3}; 11 Rsultat? 0

FST de Tanger

25/10/2010

Le Langage TCL
14

Les Procdures :
Exemple 1: proc Somme {arg1 arg2} { set x [expr {$arg1 + $arg2}]; return $x } puts " La somme de 2 + 3 Vaut: [Somme 2 3]\n\n" Rsultat? La somme de 2 + 3 Vaut: 5 Exemple 1: proc racine {arg} { set x [expr {sqrt($arg)}]; return $x;} puts [racine 50] 7.0710678118654755 Rsultat?

FST de Tanger

25/10/2010

Le Langage TCL
15

Les Procdures :
Exercice 1: Ecrire La procdure factoriel affichant le rsultat de calcul ainsi: % puts [Factoriel 5] Solution: 120 proc Factoriel {x} { set i 1; set mult 1 while {$i <= $x} { set mul [expr $mul * $i] incr i } return $mul }

FST de Tanger

25/10/2010

Le Langage TCL
16

Les Sockets :
Socket Client: Le Client peut accder aux sockets dun serveur en spcifiant ladresse du hte et le port. set s [socket www.microsoft.com 80]
Options Client: socket ? -async? ?-myaddr address? ?-myport myport? host port

Socket Server: Le Serveur Socket permet un accs multiple de clients set mainSocket [socket -server Accept 2540] proc Accept {newSock addr port} { puts "Accept $newSock from $addr port $port" } vwait forever
Options Server: socket -server callback ?-myaddr address? port

FST de Tanger

25/10/2010

Le Langage TCL
17

Autre Commande
1). %puts [info patchlevel] # Version de linterpreteur 8.5.9 2). % set str "Master SIR" # Calcul la Longueur dune chaine % string length $str 10 3). % string reverse $str # Renverse une chaine RIS retsaM

FST de Tanger

25/10/2010

Le Langage TCL
La boite outils graphique TK
18

Les Boutons
1). % button .exemple -text FIN-command exit % pack .exemple 2). % proc flip {} { > global position > set position [expr 1 - $position] > set MOT [lindex MASTER SIR" $ position] > .tog configure -text $ MOT >} % set position 0 % button .exo -text FIN -command exit % button .tog -text MASTER -command flip % pack .tog.exo

FST de Tanger

25/10/2010

Le Langage TCL
La boite outils graphique TK
19

Les Menus
menubutton .mb -text Exemple -menu .mb.menu pack .mb -padx 10 -pady 10 set m [menu .mb.menu] $m add command -label Salut! -command {puts "Bonjour, M1!"} $m add check -label Boolean -variable msg -command {puts "Message = $msg"} $m add separator $m add cascade -label Programmation -menu $m.sub1 set m2 [menu $m.sub1] $m2 add radio -label C# -variable Programmation -value C# $m2 add radio -label Java -variable Programmation -value J2EE $m2 add radio -label C++ -variable Programmation -value C++

FST de Tanger

25/10/2010

Le Langage TCL
La boite outils graphique TK
20

Les Menus
menu .menubar . config -menu .menubar foreach m {Fichier Edition Help} { set $m [menu .menubar.m$m] .menubar add cascade -label $m -menu .menubar.m$m } $File add command -label Quitter -command exit

FST de Tanger

25/10/2010

Le Langage TCL
La boite outils graphique TK
21

TP1 : ( rendre*)
1.Raliser une petite interface graphique permettant de simuler une calculatrice.

2.Raliser une application qui permet d excuter la commande qui :


a. b. c.

Renvoi le dossier ou chemin courant. Permet dafficher le contenu du dossier courant. Permet daccder un chemin saisie en une zone de texte,

* Le travail sera rendu au format numrique (.doc)


25/10/2010

FST de Tanger

Le Langage TCL
La boite outils graphique TK
22

TP2 :
1.

Une fois que vous installez NS2, raliser une interface qui permet de :
a. b. c.

Lancer une simulation dun script tcl avec la commande ns, Lancer loutil xgraph, Lancer le visualisateur nam.

FST de Tanger

25/10/2010

Le Langage TCL
La boite outils graphique TK
23

Les Fichiers Le Tcl permet la lecture et lcriture dans un fichier:

set can [open "C://Exemple1.txt" w] # Mode Ecriture puts $can "Version du TCL : [info tclversion] " puts $can "Programmation rseau" puts $can " Fin du texte " close $can

FST de Tanger

25/10/2010

Le Langage TCL
La boite outils graphique TK
24

Les Fichiers Le Tcl permet la lecture et lcriture dans un fichier: set can1 [open "c://Exemple1.txt" r] # Mode Lecture while {![eof $can1]} { gets $can1 line puts "Line: > $line <" } close $can1

FST de Tanger

25/10/2010

Le Langage TCL
La boite outils graphique TK
25

Les Fichiers Quelques Manipulations: file copy c://exemple1.txt d:// # copier un fichier file delete d://exemple1.txt #supprimer un fichier file mkdir c://MASTER1 #Crer un dossier ..

FST de Tanger

25/10/2010

Le Langage TCL
La boite outils graphique TK
26

TP3 : 1. Crer un fichier nomm atelier3.txt qui contient les informations de la figure 1: 2. laide de la commande grep crer dans un autre fichier les informations ayant en premier ligne la lettre a . 3. En utilisant le package xgraph de NS2 tracer un graphique les donnes de la colonne 3 en fonction de la colonne 2 (figure 2).
20 15 10 5 0 2 2 1 15 1 9 10 1

Fig.1
FST de Tanger

Fig.2 25/10/2010