Bonjour à tous
Voila mon probleme :
J'utilise socket pour envoyer des commandes à ma machine distante, c'est cool ca fonctionne bien
Par contre, je ne sais pas comment faire pour récupérer les réponses de la machine distante à ces commandes...
Merci d'avance pour vos conseils
Voici ma procedure permettant d'envoyer une commande :
Code :
- #-------------------------------------------------
- # Envoi de commande à la machine distante
- #-------------------------------------------------
- proc sendCmdToMachineDistante {cmd} {
- global cfg
- if {[catch {
- # Ouvre une connexion vers le CMS Remote
- set cfg(sock_cms) [socket $cfg(ADDR_IP) $cfg(NUM_PORT)]
- # Configuration non-blocking port
- fconfigure $cfg(sock_cms) -blocking 0
- # Associate a reader with the channel
- fileevent $cfg(sock_cms) readable
- } status] == 1} {
- # Récupération de l'erreur d'ouverture de connection
- set Id [open "C:/Tcl/Erreur_commande_CMS_Remote.txt" "a"]
- puts $Id "Failed to open connection :"
- puts $Id " error : $status"
- close $Id
- }
- # Lancement de la commande
- if {[catch {
- puts -nonewline $cfg(sock_cms) "$cmd"
- # Vidage buffer
- flush $cfg(sock_cms)
- # Attente --> filevents
- after 10000 {set done 1}
- vwait done
- } status] == 1} {
- set Id [open "C:/Tcl/Erreur_commande.txt" "w"]
- puts $Id "Failed to send command :"
- puts $Id " --> $cmd"
- puts $Id " error : $status"
- close $Id
- # Fermeture de la connection
- try {
- close $cfg(sock_cms)
- } {
- # Récupération de l'erreur de fermeture de connection
- set Id [open "C:/Tcl/Erreur_commande.txt" "a"]
- puts $Id "Failed to close the connection"
- close $Id
- flush stdout
- }
- unset cfg(sock_cms)
- }
- }
|