Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3008 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Probleme de fork & serveur socket

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] Probleme de fork & serveur socket

n°978529
sharlaan
Posté le 11-02-2005 à 12:26:29  profilanswer
 

dans un livre (sur perl, logique), je suis tombé sur cet exemple :
 

Code :
  1. #!/usr/bin/perl
  2. use Socket;
  3. socket(Serveur, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
  4. setsockopt(Serveur, SOL_SOCKET, SO_REUSEADDR, 1);
  5. my $mon_adr = sockaddr_in(10, INADDR_ANY);
  6. bind(Serveur, $mon_adr) or die "N'a pas pu s'attacher au port 10 : $!";
  7. listen(Serveur, SOMAXCONN) or die "N'a pas pu ecouter au port 10 : $!";
  8. REQUETE:
  9.     while (accept(Client, Serveur)) {
  10.        if($pid_fils = fork) {
  11.             close Client;
  12.             next REQUETE;
  13.         }
  14.         defined($pid_fils) or die "fork impossible : $!";
  15.         close Serveur;
  16.         select(Client);
  17.         $| = 1;
  18.         my $entree = <Client>;
  19.         print Client "Affichage\n";
  20.         open(STDIN, "<<&Client" ) or die "impossible de dupliquer le client 1 : $!";
  21.         open(STDOUT, ">&Client" ) or die "impossible de dupliquer le client 2 : $!";
  22.         open(STDERR, ">&Client" ) or die "impossible de dupliquer le client 3 : $!";
  23.         system("bc -l" );
  24.         print "fini\n";
  25.         close Client;
  26.         exit;
  27.     }


j'ai donc supposé qu'il était complet et j'ai à peu pres compris le programme, mais  j'en doute car lors de la connexion à ce programme (via socket en telnet), j'ai cette erreur dans la console où j'ai lancé ce programme et ca kill la connexion telnet :

impossible de dupliquer le client 1 : Aucun fichier ou répertoire de ce type at fork.pl line 21, <Client> line 1.


 
Vous auriez une idée sur la cause et comment le résoudre ?


---------------
"Deux chose sont infinies, l'univers et la sotise humaine. Mais je ne suis pas sûr de ce j'affirme quant à l'univers." Albert Einstein
mood
Publicité
Posté le 11-02-2005 à 12:26:29  profilanswer
 

n°979127
djtoz
Posté le 11-02-2005 à 19:47:33  profilanswer
 

sharlaan a écrit :


        open(STDIN, "<<&Client" ) or die "impossible de dupliquer le client 1 : $!";


 
open(STDIN, "<&Client" ) or die "impossible de dupliquer le client 1 : $!";
 
essaie comme ca.

n°979523
sharlaan
Posté le 12-02-2005 à 16:43:12  profilanswer
 

merci, ca marche


---------------
"Deux chose sont infinies, l'univers et la sotise humaine. Mais je ne suis pas sûr de ce j'affirme quant à l'univers." Albert Einstein
n°979750
sharlaan
Posté le 13-02-2005 à 01:02:19  profilanswer
 

par contre j'ai un probleme, lorsque je ferme la connexion sur un client, il reste encore un process qui traine :

Code :
  1. sharlaan     22496  0.0  0.0     0    0 pts/7    Z+   00:10   0:00 [perl] <defunct>


 
il y'a un truc qui manque dans mon script ?


Message édité par sharlaan le 13-02-2005 à 01:02:34

---------------
"Deux chose sont infinies, l'univers et la sotise humaine. Mais je ne suis pas sûr de ce j'affirme quant à l'univers." Albert Einstein
n°980213
djtoz
Posté le 13-02-2005 à 19:13:24  profilanswer
 

sharlaan a écrit :

par contre j'ai un probleme, lorsque je ferme la connexion sur un client, il reste encore un process qui traine :

Code :
  1. sharlaan     22496  0.0  0.0     0    0 pts/7    Z+   00:10   0:00 [perl] <defunct>


 
il y'a un truc qui manque dans mon script ?


 
oui, il manque le nettoyage des zombies
 
lis ca:
http://www.india-seo.com/perl/cookbook/ch16_20.htm


Message édité par djtoz le 13-02-2005 à 19:15:05
n°980474
sharlaan
Posté le 13-02-2005 à 22:16:00  profilanswer
 

merci


---------------
"Deux chose sont infinies, l'univers et la sotise humaine. Mais je ne suis pas sûr de ce j'affirme quant à l'univers." Albert Einstein

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Probleme de fork & serveur socket

 

Sujets relatifs
Probleme compatibilité W3C XHTML!!! Gros problème site web !!!
[Resolu] Problème de DIV avec un "padding" et un "display: inline;"[PERL] Probleme avec LWP et UserAgent dans PurePerl
[OWC][OLAP][.NET VB] connexion serveurExcel : problème de sauvegarde de formulaire
problème avec wxScrolledWindow[java-eclipse]Problème de sauvegarde sous eclipse
Rule access probleme 
Plus de sujets relatifs à : [Perl] Probleme de fork & serveur socket


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR