Hello ! Pour les besoins d'un script je doit utiliser un serveur / client socket , j'ai trouver sur le net ces scripts
http://www.ac-creteil.fr/util/progra...tp-reseau.html
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 #!/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; } } }
Je voudrais modifier leur fonctionnement pour que le client envoie un scalaire $data au serveur que celui si effectue certaines opérations dessus et renvoie le résultat au 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 #!/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"; } }
pour envoyer $data au serveur j'ai fait sa dans le client
ou $date = "lundi";
Code : Sélectionner tout - Visualiser dans une fenêtre à part while ( $ligne = $data ) {
je n'arrive pas a récupérer la varialble dans le serveur , effectuer des opérations et renvoyer le résultat au client.
Partager