[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: