Re: [HS]Serveur en Perl
*
#!/usr/bin/perl -w
# serveur.pl #
###############
use IO::Socket;
$server = IO::Socket::INET->new(
LocalPort => 1234,
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;
}
}
}
* _Code client commenté_
#!/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 => 1234
)
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";
}
}
Maladrie Julien a écrit :
Salut,
Je sais que ce thread est un peu hors-sujet, mais vu que je ne trouve pas de
solution à mon problème je me suis décidé à poster içi.
Je voudrais réaliser un serveur en perl qui accepte plusieurs connexion
simultanées et qui traiteraient les requetes par ordre d'arrivée. J'ai
commencé à utiliser Net::Server::PreFork; mais sans réel succès.
Merci de votre aide
Reply to: