Bonjour ,
je commence a travailler avec perl en reseaux , pour ça je cherche a faire un ptit script serveur qui gere plusieurs clients,
voici un script mais il gere un client ,
Serveur
Client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #!/usr/bin/perl -w # serveur.pl # ############### use IO::Socket; $server = IO::Socket::INET->new( LocalPort => 3333, Type => SOCK_STREAM, Reuse => 1, Listen => 5 ) or die "Création du serveur impossible.\n"; print "Démarrage du serveur ..\n"; while ($client = $server->accept()) { print $client "Le serveur dit 'bonjour' au client !\n"; $pid = fork; die "Je ne peux pas forker !" if ! defined ($pid); if ($pid ==0) { # c'est le processus enfant, chargé de l'écoute des clients ############################################################# while ($ligne = <$client> ) { print "client> $ligne"; } } else { # c'est le père qui pendant ce temps répond au client # ####################################################### while ($ligne = <>) { print $client $ligne; } } }
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #!/usr/bin/perl -w # client.pl # ############## use IO::Socket; print "nom ou adresse IP du serveur (localhost par défaut) "; $adresse = <>; chomp($adresse); $adresse= "localhost" if $adresse eq ""; $socket = IO::Socket::INET->new( PeerAddr => $adresse, Proto => "tcp", PeerPort => 3333 ) or die "Connexion au serveur impossible.\n"; $pid = fork; die "Je ne peux pas forker !" if ! defined ($pid); if ($pid ==0) { # c'est le processus enfant, chargé de l'émission au serveur ############################################################# while ($ligne = <> ) { print $socket $ligne; } } else { # c'est le père qui pendant ce temps écoute le serveur ####################################################### while ($ligne = <$socket>) { print "serveur> $ligne"; } }
Partager