PROGRAMMATION RÉSEAU Le Langage TCL/TK Master Systèmes Informatiques et Réseaux

PROGRAMMATION RÉSEAU Le Langage TCL/TK Master Systèmes Informatiques et Réseaux UNIVERISTE ABDELMALEK ESSAADI Faculté des Sciences et Techniques de Tanger Département Informatique Dr.BOUHORMA Pr.ANOUAR Le Langage TCL 25/10/2010 FST de Tanger 2 Tool Command Language: Développé par :Professor John K. Ousterhout Université de California à Berkeley Très puissant, Facile à apprendre , Dynamique; adapté à une très large gamme d'utilisations, Langage à Scripts avec syntaxe du shell UNIX, Opérations Commandes, 25/10/2010 FST de Tanger 3 Supporté par plusieurs Plateformes (Win, Mac Os, Linux, Solaris…) Compilé interprété Peut avoir extension à C, Flexible : Extensibilité aux concepts de la POO Le Langage TCL 25/10/2010 FST de Tanger 4 Platforme TK : kit graphique Analogue à Awt et swing de JAVA, Comporte des éléments basiques : widgets (boutons, zone de textes, menus,…) Le Langage TCL 25/10/2010 FST de Tanger 5 INSTALLATION A. Pour Windows: ActiveTcl installation Graphique, B. Pour Les Systèmes UNIX Ubuntu 9.04 sudo apt-get install tcl8.5 sudo apt-get install tk8.5. Le Langage TCL 25/10/2010 FST de Tanger 6 Outil Supportant le TCL ECLIPSE Kit de developpement TCL Interpréteur : tclsh85 Le Langage TCL http://www.eclipse.org/downloads/ 25/10/2010 FST de Tanger 7 Outil Supportant le TCL ECLIPSE Le Langage TCL 25/10/2010 FST de Tanger 8 Outil Supportant le TCL KOMODO Le Langage TCL http://www.activestate.com/komodo 25/10/2010 FST de Tanger 9 Outil Supportant le TCL Tkcon Le Langage TCL 25/10/2010 FST de Tanger 10 Le Langage TCL Outil Supportant le TCL NS2 (Network Simulator) 25/10/2010 FST de Tanger 11 Quelques Commandes : Les Commentaires #Ceci Désigne un commentaire Afficher un message puts " Ceci est un message" Initialiser une valeur set VAL 3 Le Langage TCL • Fonction Mathématiques Supportés Abs acos asin atan atan2 bool ceil cos cosh double entier exp floor fmod hypot int isqrt log log10 max min pow rand round sin sinh sqrt srand tan tanh wide 25/10/2010 FST de Tanger 12 Quelques Commandes : Le Langage TCL Exemple 1: % set x 1 % set w “ABCDEF“ % expr { [string length $w]-2*$x } Résultat? 4 Exemple 2: % set X 100 % set Y 256 % set Z [expr {$Y + $X}] % set Z_LABEL "$Y plus $X est $Z"} Résultat? 256 plus 100 est 356 Exemple 3: %puts “ [expr { sqrt($Y) }]\n" Résultat? 16 Exemple 4: % set A 3 % set B 4 % puts “[expr {hypot($A,$B)}]" Résultat? 05 http://www.activestate.com/activetcl/ 25/10/2010 FST de Tanger 13 Quelques Commandes : Le Langage TCL Exemple 1: set x 1 if {$x == 2} {puts "$x est 2"} else {puts "$x différent de 2"} Résultat? 1 différent de2 Exemple 3: for {set i 0} {$i < 10} {incr i} { puts " La valeur de I est : $i" } Résultat? 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}; Résultat? 11 0 25/10/2010 FST de Tanger 14 Les Procédures : Le Langage TCL 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" Résultat? La somme de 2 + 3 Vaut: 5 Exemple 1: proc racine {arg} { set x [expr {sqrt($arg)}]; return $x;} puts [racine 50] Résultat? 7.0710678118654755 25/10/2010 FST de Tanger 15 Les Procédures : Le Langage TCL Exercice 1: Ecrire La procédure factoriel affichant le résultat de calcul ainsi: % puts [Factoriel 5] 120 Solution: proc Factoriel {x} { set i 1; set mult 1 while {$i <= $x} { set mul [expr $mul * $i] incr i } return $mul } 25/10/2010 FST de Tanger 16 Les Sockets : Le Langage TCL Socket Client: Le Client peut accéder aux sockets d’un serveur en spécifiant l’adresse du hôte 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 accès 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 25/10/2010 FST de Tanger 17 Autre Commande Le Langage TCL 1). %puts [info patchlevel] #Version de l’interpreteur 8.5.9 2). % set str "Master SIR" #Calcul la Longueur d’une chaine % string length $str 10 3). % string reverse $str #Renverse une chaine RIS retsaM 25/10/2010 FST de Tanger 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 Le Langage TCL La boite à outils graphique TK 25/10/2010 FST de Tanger 19 Les Menus Le Langage TCL La boite à outils graphique TK 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++ 25/10/2010 FST de Tanger 20 Les Menus Le Langage TCL La boite à outils graphique TK 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 25/10/2010 FST de Tanger 21 TP1 : (à rendre*) 1.Réaliser une petite interface graphique permettant de simuler une calculatrice. 2.Réaliser une application qui permet d’ exécuter la commande qui : a. Renvoi le dossier ou chemin courant. b. Permet d’afficher le contenu du dossier courant. c. Permet d’accéder à un chemin saisie en une zone de texte, * Le travail sera rendu au format numérique (.doc) Le Langage TCL La boite à outils graphique TK 25/10/2010 FST de Tanger 22 TP2 : 1. Une fois que vous installez NS2, réaliser une interface qui permet de : a. Lancer une simulation d’un « script tcl » avec la commande ns, b. Lancer l’outil xgraph, c. Lancer le visualisateur nam. Le Langage TCL La boite à outils graphique TK 25/10/2010 FST de Tanger 23 Les Fichiers Le Tcl permet la lecture et l’écriture dans un fichier: Le Langage TCL La boite à outils graphique TK set can [open "C://Exemple1.txt" w] # Mode Ecriture puts $can "Version du TCL : [info tclversion] " puts $can "Programmation réseau" puts $can " Fin du texte " close $can 25/10/2010 FST de Tanger 24 Les Fichiers Le Tcl permet la lecture et l’écriture dans un fichier: Le Langage TCL La boite à outils graphique TK set can1 [open "c://Exemple1.txt" r] # Mode Lecture while {![eof $can1]} { gets $can1 line puts "Line: > $line <" } close $can1 25/10/2010 FST de Tanger 25 Les Fichiers Quelques Manipulations: Le Langage TCL La boite à outils graphique TK file copy c://exemple1.txt d:// # copier un fichier file delete d://exemple1.txt #supprimer un fichier file mkdir c://MASTER1 #Créer un dossier ….. 25/10/2010 FST de Tanger 26 TP3 : 1. Créer un fichier nommé « atelier3.txt » qui contient les informations de la figure 1: 2. À l’aide de la commande « grep » créer 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 données de la colonne 3 en fonction de la colonne 2 (figure 2). Le Langage TCL La boite à outils graphique TK 0 5 10 15 20 2 2 1 15 1 9 10 1 Fig.1 Fig.2 uploads/s3/ programmation-reseau-tcl-m1.pdf

  • 23
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager