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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| #!/usr/bin/perl
use strict;use warnings;
use IO::Socket;
my $client ;
my $serveur;
my $reponse;
$serveur = IO::Socket::INET->new(LocalPort => 8080,
Type => SOCK_STREAM,
Reuse => 1,
Listen => 10)
or die "Impossible de ce connecter sur le port 3083 : $@\n";
print" Demarrage du serveur...\n";
while ($client = $serveur->accept()) {
$client->autoflush(1);
while (defined ($line = <$client> ) ) {
print("line vaut $line \n" );
}
}
close($serveur);
Et j'ai un client.pl
#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket;
my ( $kidpid, $line);
my $socket = IO::Socket::INET->new(Proto => "tcp",
PeerAddr => "$ host",
PeerPort => 8080)
or die "Failed : $@\n";
print "*** Debut de connexion ***\n";
print "*** BIENVENUE sur le serveur TELLABS 7100****\n";
while(my $reponse=<$socket> ){
print "server> : $reponse\n";
}
print " Au revoir SERVEUR!!!:\n";
if ($kidpid) {
# copie la socket sur la sortie standard
while (defined ($line = <$socket> )) {
print STDOUT $line;
}
kill("TERM", $kidpid);
# envoie SIGTERM au fils
}
# le bloc else{} n'est traverse que dans le fils
else {
# copie l'entree standard sur la socket
while (defined ($line = <STDIN> )) {
print $socket $line;
}
}
#close($socket); |
Partager