OVH Cloud OVH Cloud

serveur +interface graphique en perl sous win le bon choix?

3 réponses
Avatar
g.zizou
Bonjour,
voici le problème auquel je suis confronté, j'ai un certain nombre de
client sous des os différents, et une machine "principale" sous win.
Je veux que des différents os je puisse envoyer à la machine ppale
sous win une demande d'aide, comportant le nom de la machine et
l'utilisateur logué dessus.
J'ai pensé faire un serveur en perl, qui écouté sur un port , et qui
réagit à l'envoie d'un message du type "nomdelamachine
nomdelutilisateur".
POur ce faire j'ai copié collé l'exemple de la doc d'active perl, la
partie serveur focntionne sans problemes.
J'ai créée à part une interface graphique en perl tk, qui list les
machines sur le réseau et ajoute des boutons qui permettent de se
connecter aux machines via vnc.
tout content je me suis dit qu'il ne me restait plus qu' à faire des
deux applis une seule pour que un evenement sur le serveur provoque
une réponse sur l'interface graphique du genre la mise sur fond rouge
du bouton connect si la machine a demandé de l'aide.
j'ai pour cela fait une sub serveur avec mon serveur, et j'appelle le
serveur dans un thread (première boulette?)
tout se passe à peu près bien quand je lance mon appli perl, mais
quand un client envoie un message sur le port du serveur, l'appli se
plante lamentablement dans un message windows incompréhensible et un
message de perl can't free pool tout qussi compréhensible pour moi
pauvre néophyte.
Est ce que mon choix de stratégie est bon ou je dois repenser mon
programme?
comment remédier à ces plantage abscons?
en "sharant" des variables, lesquelles, la variable associée à mes
boutons ok mais aussi celle de la Mainwindow de tcl?

mes essais pifométriques n'ont rien donné de concluant, que faire.

Merci

Gaetan Duchaussois

3 réponses

Avatar
Gaëtan Duchaussois
le 17 May 2004 13:51:49 -0700, Gaetan Duchaussois a ressenti le besoin de
nous dire:

Bonjour,
voici le problème auquel je suis confronté, j'ai un certain nombre de
client sous des os différents, et une machine "principale" sous win.
Je veux que des différents os je puisse envoyer à la machine ppale
sous win une demande d'aide, comportant le nom de la machine et
l'utilisateur logué dessus.
J'ai pensé faire un serveur en perl, qui écouté sur un port , et qui
réagit à l'envoie d'un message du type "nomdelamachine
nomdelutilisateur".
POur ce faire j'ai copié collé l'exemple de la doc d'active perl, la
partie serveur focntionne sans problemes.
J'ai créée à part une interface graphique en perl tk, qui list les
machines sur le réseau et ajoute des boutons qui permettent de se
connecter aux machines via vnc.
tout content je me suis dit qu'il ne me restait plus qu' à faire des
deux applis une seule pour que un evenement sur le serveur provoque
une réponse sur l'interface graphique du genre la mise sur fond rouge
du bouton connect si la machine a demandé de l'aide.
j'ai pour cela fait une sub serveur avec mon serveur, et j'appelle le
serveur dans un thread (première boulette?)
tout se passe à peu près bien quand je lance mon appli perl, mais


[snip mes ennuis]

Je vais mettre le script en ligne, ce sera sans doute plus clair:
http://gduchaussois.ath.cx/~gaetan/perl/toto.pl

--
Gaëtan

Avatar
Gaëtan Duchaussois
le Tue, 18 May 2004 14:15:52 +0200, Gaëtan Duchaussois a ressenti le besoin
de nous dire:
le 17 May 2004 13:51:49 -0700, Gaetan Duchaussois a ressenti le besoin de
nous dire:

Bonjour,
voici le problème auquel je suis confronté, j'ai un certain nombre de
client sous des os différents, et une machine "principale" sous win.
Je veux que des différents os je puisse envoyer à la machine ppale
sous win une demande d'aide, comportant le nom de la machine et
l'utilisateur logué dessus.
J'ai pensé faire un serveur en perl, qui écouté sur un port , et qui
réagit à l'envoie d'un message du type "nomdelamachine
nomdelutilisateur".
POur ce faire j'ai copié collé l'exemple de la doc d'active perl, la
partie serveur focntionne sans problemes.
J'ai créée à part une interface graphique en perl tk, qui list les
machines sur le réseau et ajoute des boutons qui permettent de se
connecter aux machines via vnc.
tout content je me suis dit qu'il ne me restait plus qu' à faire des
deux applis une seule pour que un evenement sur le serveur provoque
une réponse sur l'interface graphique du genre la mise sur fond rouge
du bouton connect si la machine a demandé de l'aide.
j'ai pour cela fait une sub serveur avec mon serveur, et j'appelle le
serveur dans un thread (première boulette?)
tout se passe à peu près bien quand je lance mon appli perl, mais


[snip mes ennuis]

Je vais mettre le script en ligne, ce sera sans doute plus clair:
http://gduchaussois.ath.cx/~gaetan/perl/toto.pl

après essai fait sous linux en virant les use win32 et autre joyeuseté,

ça marche, enfin pas tout le temps de temps à autres j'ai un
Xlib: unexpected async reply (sequence 0x10c)!
avec le sequence qui varie mais si ça a commencé à marcher, ça continue.

je le mets sur http://gduchaussois.ath.cx/~gaetan/perl/toto2.pl

Ça me plait moyennement comme comportement, mais bon.
je vais peut-être changer mo point de vue et faire s'adresser les
machines clientes à la machine linux qui transmettra des ordres simples
s à la machine win via tcp...

Une nouvelle question, comment tester si cette erreur survient et
auxquel cas relancer l'appli, c'est pas pour des utilisateurs exigeants
donc si ça foire un peu de temps en temps c'est pas dramatique...

merci d'avance.

--
Gaëtan qui va apprendre les commandes smb*...


Avatar
Gaëtan Duchaussois
le Tue, 18 May 2004 21:33:50 +0200, Gaëtan Duchaussois a ressenti le besoin
de nous dire:

après essai fait sous linux en virant les use win32 et autre joyeuseté,
ça marche, enfin pas tout le temps de temps à autres j'ai un
Xlib: unexpected async reply (sequence 0x10c)!
avec le sequence qui varie mais si ça a commencé à marcher, ça continue.

je le mets sur http://gduchaussois.ath.cx/~gaetan/perl/toto2.pl

Ça me plait moyennement comme comportement, mais bon.
je vais peut-être changer mo point de vue et faire s'adresser les
machines clientes à la machine linux qui transmettra des ordres simples
s à la machine win via tcp...


finalment il dsuffisait de faire deux applis perl différentes et de les
faire communiquer via un fifo et tk::fileevent.

Je mettrais en ligne la version finale.
l'appli se fera sous linux car je ne sai spas créer de fifo sous win.

la machine principale sous win fera tourner un script perl text only qui
se maniera bien plus facilement sous cette plateforme étrange...


Une nouvelle question, comment tester si cette erreur survient et
auxquel cas relancer l'appli, c'est pas pour des utilisateurs exigeants
donc si ça foire un peu de temps en temps c'est pas dramatique...

ça je sais toujours pas faire donc si quelqu'un sait...


merci d'avance.

toujours valable


--
Gaëtan