Bonnour a tous,

Je rencontre un probleme de redirection avec netcat que j'utilise en serveur tcp avec un script de traitement de commande.

J'ai un script serveur qui ecoute et renvoie sur mon script qui interprete:

serveur.sh
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
#!/bin/sh
nc -l -p 22222 | ./interpreteur_localcmd
Et l'interpreteur se contente de faire un echo de ce qu'il recoit

interpreteur.sh
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#!/bin/sh
while read entree
do
echo $entree
done
Si je l'utilise tel quel et que dans un autre terminal je lance:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
>>nc localhost 22222
>>TEST
L'echo dans mon script interpréteur fonctionne bien.

Probleme, si au lieu de lancer un client via netcat j'utilise un soft qui se connecte sur ce port il ne se passe rien...

Pourtant, si je modifie mon serveur pour faire directement un cat sans passer par un script d'interpretation cela fonctionne (donc j'en deduis que la communication avec le soft est effective):

serveur.sh
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
#!/bin/sh
nc -l -p 22222 | cat

Mon probleme vient donc de l'appel a interpreteur_cmd.sh, mais seulement lorsque je l'attaque via ce soft, car dans un autre terminal cela fonctionne...

Une idée de la cause du problème ??
Merci beaucoup d'avance car la je sèche :/

PS1:Si mon serveur tcp est uniquement "nc -l -p 22222" et que je lance mon soft client, la connexion se passe bien et j'affiche dans le terminal serveur ce que le client envoie
PS2:Lorsque j'utilise mon serveur avec le script d’interprétation, mon soft se connecte bien car même s'il ne se passe rien, des que je stop ce soft le script serveur se termine (d'ailleurs si quelqu'un sait comment ne pas terminer le serveur lorsque son client se déconnecte ou le redémarrer automatiquement), j'en déduis un probleme seulement au niveau de la redirection..