sharlaan | dans un livre (sur perl, logique), je suis tombé sur cet exemple :
Code :
- #!/usr/bin/perl
- use Socket;
- socket(Serveur, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
- setsockopt(Serveur, SOL_SOCKET, SO_REUSEADDR, 1);
- my $mon_adr = sockaddr_in(10, INADDR_ANY);
- bind(Serveur, $mon_adr) or die "N'a pas pu s'attacher au port 10 : $!";
- listen(Serveur, SOMAXCONN) or die "N'a pas pu ecouter au port 10 : $!";
- REQUETE:
- while (accept(Client, Serveur)) {
- if($pid_fils = fork) {
- close Client;
- next REQUETE;
- }
- defined($pid_fils) or die "fork impossible : $!";
- close Serveur;
- select(Client);
- $| = 1;
- my $entree = <Client>;
- print Client "Affichage\n";
- open(STDIN, "<<&Client" ) or die "impossible de dupliquer le client 1 : $!";
- open(STDOUT, ">&Client" ) or die "impossible de dupliquer le client 2 : $!";
- open(STDERR, ">&Client" ) or die "impossible de dupliquer le client 3 : $!";
- system("bc -l" );
- print "fini\n";
- close Client;
- exit;
- }
|
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
|