14/12/2013, 16:26
(14/12/2013, 12:34)aliasangelius a écrit : A savoir, variable sa créer absolument pas la var !
Il fait comme un bloque de mémoire en gros, et pour que il sache ce tiens tel que $evaIP il faut le set pour permettre que info exists retourne le 0
Sinon, Tiens prend exemple sur celui que j'avais que djkenny m'avais refait :
tcl
namespace eval ::socks { variable aurore #********************# # Service.Socket 1.0 # #********************# #**************************# # Information link reseau. # #**************************# set aurore(serv) "Aurore.****.fr" set aurore(ip) "ip" set aurore(port) "port" set aurore(pwdlink) "pass" set aurore(info) "Aurore Services" #****************************# # Configuration des sockets. # #****************************# set aurore(nick) "Hera" set aurore(identd) "Hera" set aurore(host) "Services.****.fr" set aurore(nom) "Services-Log" #***************************# # Salon de log des sockets. # #***************************# set aurore(log) "#Services" set aurore(quit01) "Redemarage Aurore-Service." set aurore(quit02) "Fermeture Aurore-Service." #****************************************# # Lancement de la procédure des sockets. # #****************************************# proc checkconnect {} { if {![info exists aurore(idx)]} { utimer 30 [namespace current]::checkconnect } else { xconnect:serv } } proc xconnect:serv {} { variable aurore if [catch {set aurore(idx) [connect $aurore(ip) $aurore(port)]} err] { putlog "Connection error :$err" return } putdcc $aurore(idx) "PASS $aurore(pwdlink)" putdcc $aurore(idx) "SERVER $aurore(serv) 1 [unixtime] [unixtime] J09 ACAA\] +s :$aurore(info)" putdcc $aurore(idx) ":$aurore(serv) NICK $aurore(nick) '' '' $aurore(identd) $aurore(host) $aurore(serv) '' :$aurore(nom)" putdcc $aurore(idx) ":$aurore(nick) MODE $aurore(nick) +owsgkd" putdcc $aurore(idx) ":$aurore(nick) JOIN $aurore(log)" putdcc $aurore(idx) ":$aurore(nick) MODE $aurore(log) +ntsv $aurore(nick)" control $aurore(idx) [namespace current]::controling_server utimer 10 [namespace current]::verify } #***********************************# # Verify si le serveur est Connecté # #***********************************# proc verify {} { variable aurore if [valididx [set [namespace current]::aurore(idx)]] { utimer 30 [namespace current]::verify } else { xconnect:serv } } proc controling_server {idx arg} { variable aurore set arg1 [lindex [split $arg " "] 0] set arg2 [lindex [split $arg " "] 1] set arg3 [lindex [split $arg " "] 2] set arg4 [lindex [split $arg " "] 3] set arg5 [lindex [split $arg " "] 4] set arg6 [lindex [split $arg " "] 5] set arg7 [lindex [split $arg " "] 6] set arg8 [lindex [split $arg " "] 7] set arg10 [string trim [lrange [split $arg " "] 3 end] :] if {$arg2=="PING"} { putdcc $aurore(idx) ":$aurore(serv) PONG $aurore(ip) :$aurore(serv)" } } #**********************# # Restart des sockets. # #**********************# bind evnt - prerestart [namespace current]::eva:restart proc eva:restart {args} { variable aurore putdcc $aurore(idx) ":$aurore(serv) SQUIT $aurore(serv) :Restart Sockets." catch {close $aurore(idx)} } #********************# # Rehash du Service. # #********************# bind dcc n xrehash [namespace current]::eggy:xrehash proc eggy:xrehash {nick idx arg} { variable aurore putdcc $idx "\002Rehash de Aurore-Service et des fichiers\002" utimer 4 rehash } #*********************# # Restart du Service. # #*********************# bind dcc n xrestart [namespace current]::eggy:xrestart proc eggy:xrestart {nick idx arg} { variable aurore putdcc $idx "\002Redémarrage de Aurore-service\002" if [valididx [set [namespace current]::aurore(idx)]] { putdcc $aurore(idx) ":$aurore(nick) QUIT :$aurore(quit01)" putdcc $aurore(idx) ":$aurore(serv) SQUIT :$aurore(serv)" catch {close $aurore(idx)} foreach kill [utimers] { if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] } } } xconnect:serv } #*****************# # Die du Service. # #*****************# bind dcc n xdie [namespace current]::eggy:xdie proc eggy:xdie {nick idx arg} { putdcc $idx "\002Arrêt de Aurore-Service\002" if [valididx [set [namespace current]::aurore(idx)]] { putdcc $aurore(idx) ":$aurore(nick) QUIT : $aurore(quit02)" putdcc $aurore(idx) ":$aurore(serv) SQUIT :$aurore(quit02)" catch {close $aurore(idx)} foreach kill [utimers] { if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] } } } } #****************************# # Fin du Service Sockets 1.0 # #****************************# # connection [namespace current]::xconnect:serv } putlog "\0031Service Sockets 1.0 \0034Chargé."
Bonjour,
merci pour vos réponse rapide,et alias justement je me suis basé dessus voir même laissé comme ça le tcl en y rajoutant juste la proc xop mais toujours le même problème survient ...
CrazyCat je vais voir tout a heure ce que me retourne eva(idx)
[font=Times New Roman]La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.[/font]