IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tcl/Tk Discussion :

Mode Client-Serveur sous Windows XP ?


Sujet :

Tcl/Tk

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 112
    Points
    112
    Par défaut Mode Client-Serveur sous Windows XP ?
    Salut.

    Comment faire fonctionner sous Windows XP le mode Client-Serveur des deux fichiers ci-dessous (Serveur.tcl et Client.tcl). Quelles commandes à modifier et à rajouter pour les faire fonctionner ensemble? Ce qui pose problème, c'est surtout le client. Merci d'avance.

    fichier Serveur.tcl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    #\ exec tclsh "$0" ${1+"$@"} &
    #console show
     
    proc receptionInput {sockID} {
           if { [eof $sockID] } {
           fileevent $sockID readable {}
           close $sockID
           after 3000 exit
           return
           };#end of if1
     
           set data [read $sockID]
           if {[string length $data] > 0 } {
              .txt insert end $data
           };#end of if2
     
    };#end of receptionInput 
     
    #----------------------------------------------------------
     
    proc connectInit {sockID adrClient portClient} {
           fconfigure $sockID -blocking 0
           fileevent $sockID readable [list receptionInput $sockID]
    };#end of connectInit 
     
    #----------------------------------------------------------
     
    wm title . "Serveur"
    text .txt -bd 2 -relief sunken -bg white -width 50 -height 10
    pack .txt -side top -fill both -expand 1

    fichier Client.tcl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    #\ exec tclsh "$0" ${1+"$@"}
    #console show
     
    set delai 100
    set data "Quand l'occident se couche devant la Chine au lieu de dire: Vive le Tibet libre!"
     
    set data [split $data {}];
     
    set connexion [socket -async localhost 9000]
    fconfigure $connexion -buffering none
     
    foreach x $data {
               puts -nonewline $connexion $x
               after $delai
    };#end of foreach
     
    close $connexion
    exit
    Exemple tiré du livre de Bernard Desgraupes (pages 364-366)
    "TCL/TK Apprentissage et référence" aux éditions Vuibert.

    L'erreur est la suivante:
    error writing sock1000: connection refused
    while executing
    puts -nonewline $connexion $x
    "foreach" body line 2
    invoked from within
    foreach x $data {
    puts -nonewline $connexion $x
    after $delai
    };#end of foreach

    in the file Client.tcl
    N'est-ce pas dans la définition de la connexion avec le socket qu'il y a un problème à savoir -async localhost 9000 au niveau du socket?

    A+

  2. #2
    Membre averti Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Points : 441
    Points
    441
    Par défaut
    Je pense que ton problème vient tout simplement du fait que tu as oublié de démarrer le serveur. D'après l'exemple du livre, il manque dans ton fichier Serveur.tcl, la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    socket -server connectInit 9000

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 112
    Points
    112
    Par défaut
    Salut Corentin59.

    Merci beaucoup Corentin59. Cela marche très bien maintenant.
    Bravo pour ton professionalisme!

    A+


    PS: Voici le bon code du serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    #\ exec tclsh "$0" ${1+"$@"} &
    #console show
     
    proc receptionInput {sockID} {
           if { [eof $sockID] } {
           fileevent $sockID readable {}
           close $sockID
           after 3000 exit
           return
           };#end of if1
     
           set data [read $sockID]
           if {[string length $data] > 0 } {
              .txt insert end $data
           };#end of if2
     
    };#end of receptionInput 
     
    #----------------------------------------------------------
     
    proc connectInit {sockID adrClient portClient} {
           fconfigure $sockID -blocking 0
           fileevent $sockID readable [list receptionInput $sockID]
    };#end of connectInit 
     
    #----------------------------------------------------------
     
    wm title . "Serveur"
    socket -server connectInit 9000
    text .txt -bd 2 -relief sunken -bg white -width 50 -height 10
    pack .txt -side top -fill both -expand 1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. installation silencieuse client oracle8i sous windows 2KXP
    Par deftonesMichael dans le forum Installation
    Réponses: 5
    Dernier message: 24/01/2006, 17h28
  2. Crére un client/serveur sous linux en TCP
    Par Darknicosh dans le forum Développement
    Réponses: 11
    Dernier message: 20/06/2005, 10h19
  3. Client Oracle sous Windows
    Par linou dans le forum Oracle
    Réponses: 4
    Dernier message: 11/05/2005, 15h31
  4. installer un client postgres sous windows
    Par bilb0t dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 13/04/2005, 10h43
  5. Réponses: 1
    Dernier message: 17/04/2004, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo