Posts Tagged ‘serveur’

Client/Serveur: Création d’un serveur pour échanger avec les connexions des clients

serveur, list, date, socket, list, set, socket
{filelink=13108}

#!/usr/local/bin/perl
   ############## Socket Serveur ################
 
use Socket;
 
my $port_serveur=80;         #Port du Serveur, utilisé par le client
 
# Création d'un Socket
socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
 
# Démarrer le Serveur
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1);
 
my $addr_serveur = sockaddr_in($port_serveur, INADDR_ANY);
bind(SERVER, $addr_serveur)
    or die "Port introuvable $port_serveur : $!n";
 
# Attendre la connexion du client
listen(SERVER, SOMAXCONN)
    or die "Le serveur ne peut pas écouter sur le port $port_serveur : $!n";
 
# Accepter toutes les connexion utilisant le port 80
while(1)
{
 if (accept(CLIENT, SERVER))
{
    # Envoyer des informations aux clients connectés
    print CLIENT scalar localtime, "n";      # date du Serveur
 
    close CLIENT;                             # Terminer la connexion client
 
}
}
close(SERVER);

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Perl: créer un serveur datagramme

serveur, socket, socket
{filelink=13109}

 #!/usr/bin/perl -w
 
  use strict;
  use IO::Socket;
 
  my ($sock,   # Socket
      $serv_msg, # message Serveur
      $clt_msg, # message client
      $clt_host,# host client
      $MAXLEN, # Caractères
      $PORTNO  # Port Serveur
      );
  $MAXLEN = 1024;
  $PORTNO = 80;
 
  $sock = IO::Socket::INET->new(LocalPort => $PORTNO, Proto => 'udp')
      or die "Erreur Socketet: $@";
 
  print "Serveur lancé, Attente de message client....n";
 
  $serv_msg = "Salut, Bienvenu sur le Serveur Perl.n";
  while ($sock->recv($clt_msg, $MAXLEN))
   {
      my($port, $ipaddr) = sockaddr_in($sock->peername);
      $clt_host = gethostbyaddr($ipaddr, AF_INET);
      print "Client $clt_host dit ``$clt_msg''n";
 
      #Envoyer un message au Client
      $sock->send($serv_msg);
      $serv_msg = "[$clt_host] $clt_msg";
  }
  die "Erreur de lecture message serveur: $!";

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Exemple d’utilisation d’une connexion FTP

 fichier,serveur,ftp, html
{filelink=13114}

#!/usr/bin/perl
 
use warnings;
use strict;
use Net::FTP;
 
my $ftp = Net::FTP->new("ftp.monserveurFTP.com", Timeout => 60)
		or die "Connexion impossible: $@";       # En cas d'erreur, prévenir
$ftp->login("username","password");          # Identification
 
$ftp->cwd("/httdoc/site");                   # Dossier courany
$ftp->get("index.html");                    # télécharger le fichier index.html
$ftp->close;

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Envoyer et récevoir des fichiers d’un serveur FTP

 fichier,serveur,ftp, html
{filelink=13116}

#!/usr/bin/perl -w
 
use Net::FTP;
 
$username = "test_username";                # Nom d'utilisateur
$password = "test_mot_de_passe";            # Mot de passe
$remotefile = "index.html";                 # Fichier à téléchargé
$localfile = "index2.html";                 #Fichier à envoyé
$directory = "httdoc";                      # Le répertoire
 
$ftp = Net::FTP->new("ftp.monhost.com")    or die "Connexion impossible: $@n";
#Identification du client
$ftp->login($username, $password)          or die "Nom d'utilisateur/mot de passe incorrectn";
# Changer le répertoir
$ftp->cwd($directory)                      or die "Impossible de sélectionner ce répertoiren";
# télécharger le fichier distant
$ftp->get($remotefile)                    or die "Impossible de télécharger le fichier: $remotefilen";
# envoyer un fichier au serveur
$ftp->put($localfile)                       or die "Impossible d'envoyer ce fichier: $localfilen";

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Comment identifier le socket lié à votre connexion

serveur, socket, socket
{filelink=13111}

#!/usr/bin/perl
 
use Socket;
 
$identite_client   = getpeername(SOCKET)
 
    or die "Impossible d'identifier le serveur: $!n";
($port, $iaddr)    = unpack_sockaddr_in($identite_client);
$ip_address        = inet_ntoa($iaddr);
print $ip_address;

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Perl: créer un client datagramme pour échanger avec le client

serveur, date, socket, adresse, socket
{filelink=13110}

#!/bin/perl -tw
 
my $remote_host="127.0.0.1";      # L'adresse du serveur
my $remote_port=80;               # Le port du Serveur
my $protocole="udp";              # Le protocole utilisé
 
use Socket qw(AF_INET SOCK_DGRAM inet_aton sockaddr_in);
 
# Définir le protocole
$proto = getprotobyname($protocole);
 
# Création d'un socket générique
socket(SOCK, AF_INET, SOCK_DGRAM, $proto) or die "socket: $!";
 
$ipaddr   = inet_aton($remote_host);
$portaddr = sockaddr_in($remote_port, $ipaddr);
 
# Envoyer un message au serveur
my $message="Allô Serveur";
send(SOCK,$message, 0, $portaddr) or die "Erreur d'envoi de msg: $!";
 
$SIG{ALRM} = sub { die "Timeout:$!" };
 
eval
{
 # Lire le message envoyé par le serveur
recv(SOCK, $date, 1024, 0) or die "Impossible de lire le message du serveur: $!n";
print $date,"n";
 
} or warn $@;
close(SOCK);

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Télécharger un fichier à l’aide d’une connexion FTP

 fichier,serveur,ftp, html
{filelink=13113}

 
use Net::FTP;
 
$username = "test_username";                # Nom d'utilisateur
$password = "test_mot_de_passe";            # Mot de passe
$remotefile = "index.html";                 # Fichier à téléchargé
 
$ftp = Net::FTP->new("ftp.monserveurFTP.com", Timeout => 60)
        or die "Impossible de se connecter au serveur.";
 
$ftp->login($username, $password)
        or die "La connexion à échouée:$_!";
 
$ftp->cwd('/httdoc/site');                  #Définir le dossier diatnt
 
#Enregistrer le fichier dans le dossier courant
$ftp->get($remotefile, $remotefile)
        or die "Can not get file.";

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Perl: Lire les emails d’un serveur POP3

serveur, list, list, adresse, email
{filelink=13118}

#!/usr/local/bin/perl
 
############## Programme de lecture d'email ##############
#   Lire les email d'un serveur Mail
#
use strict;
 
my  $mail_server="mail.serveur.com";            # Adresse du serveur mail
my  $username = "test_username";                # Nom d'utilisateur
my  $password = "test_mot_de_passe";            # Mot de passe
 
my $pop = Net::POP3->new($mail_server)
    or die "Impossible de se connecteur au serveur $mail_server : $!n";
 
# Authentification client
defined ($pop->login($username, $password))
    or die "Nom d'utilisateur ou mot de passe incorrect: $!n";
 
# Obtenir la liste des emails
my $messages = $pop->list
 or die "Impossible d'obtenir la liste des messages: $!n";
 
foreach my $msgid (keys %$messages)
{
    my $message = $pop->get($msgid);
    unless (defined $message)
     {
        warn "Impossible de lire le message avec l'ID$msgid: $!n";
        next;
    }
    # Afficher le message
    print @$message;
    $pop->delete($msgid);
}

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Se Connecter à un serveur distant à l’aide d’un socket ‘Socket::INET’

serveur, socket, adresse, socket
{filelink=13106}

 
#!/usr/local/bin/perl
 
use IO::Socket;
 
my $remote_host="127.0.0.1";      # L'adresse du serveur
my $remote_port=80;               # Le port du Serveur
my $protocole="tcp";              # Le protocole utilisé
 
$socket = IO::Socket::INET->new(PeerAddr => $remote_host,
                                PeerPort => $remote_port,
                                Proto    => $protocole,
                                Type     => SOCK_STREAM)
    or die "Echec de connexion avec les paramètres suivant: $remote_host:$remote_port : $@n";
 
$reponse_conn = <$socket>;
print   $reponse_conn,"n";
 
# Fermeture de la connexion
close($socket);

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]

Créer un socket pour gérer votre connexion distante à l’aide du module ‘Socket’

serveur, socket, adresse, socket
{filelink=13107}

#!/usr/local/bin/perl
  ############## Socket Client ################
 
use Socket;                       # intégration du module Socket
 
my $remote_host="127.0.0.1";      # L'adresse du serveur
my $remote_port=80;               # Le port du Serveur
my $protocole="tcp";              # Le protocole utilisé
 
# Création du Socket
socket(TO_SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
 
# Définir l'adresse de la machine distante
$addr_internet = inet_aton($remote_host)
    or die "Adresse $remote_host introuvable: $!n";
 
    # Définir le port de connexion sous l'adresse
$paddr = sockaddr_in($remote_port, $addr_internet);
 
# Démarrer la connexion
connect(TO_SERVER, $paddr)
    or die "Echec de connexion avec les paramètres suivant:
    			$remote_host:$remote_port : $!n";
print "Attente de données Serveur....";
# Lire les informations envoyées par le Serveur
print <TO_SERVER>;
 
# Fermeture de la connexion
close(TO_SERVER);

Livres sur ce sujet

[amazon_image id=”2841773698″ link=”true” target=”_blank” size=”medium” ]De l’art de programmer en Perl[/amazon_image][amazon_image id=”2914010729″ link=”true” target=”_blank” size=”medium” ]Perl pour l’impatient[/amazon_image][amazon_image id=”2841771407″ link=”true” target=”_blank” size=”medium” ]Programmation en Perl, 3ème édition[/amazon_image][amazon_image id=”B005ELPHNA” link=”true” target=”_blank” size=”medium” ]Perl moderne: L’essentiel des pratiques actuelles[/amazon_image][amazon_image id=”2914010656″ link=”true” target=”_blank” size=”medium” ]Les expressions régulières par l’exemple[/amazon_image][amazon_image id=”2914010869″ link=”true” target=”_blank” size=”medium” ]Les meilleures bibliothèques pour Perl[/amazon_image]