Je tente d'émuler un serveur TCP sur le même ordinateur sur lequel l'application est en cours d'exécution. Je ne sais pas si cela peut être fait en Perl parce que je ne suis pas très expérimenté. Avec le code ci-dessous, la première réponse fonctionne mais je ne sais pas comment implémenter la seconde.Serveur TCP multiple recevoir et répondre
#!/usr/bin/perl -w
use IO::Socket::INET;
use strict;
my $socket = IO::Socket::INET->new('LocalPort' => '3000',
'Proto' => 'tcp',
'Listen' => SOMAXCONN)
or die "Can't create socket ($!)\n";
print "Server listening\n";
while (my $client = $socket->accept) {
my $name = gethostbyaddr($client->peeraddr, AF_INET);
my $port = $client->peerport;
while (<$client>) {
print "$_";
print $client "RESPONSE1";
}
close $client
or die "Can't close ($!)\n";
}
die "Can't accept socket ($!)\n";
EDIT: Merci les gars pour l'imput, je me suis retrouvé avec php fait et son travail, yay!
vous devez 'fork '. Voir cette question par exemple http://stackoverflow.com/questions/7662711/perl-forked-socket-server-stops-accepting-connections-when-a-client-disconnects –
soit 'fork' ou utilise un événement piloté io, par ex. [Programmation événementielle en Perl en utilisant le module Event] (http://cpansearch.perl.org/src/JPRIT/Event-1.20/Tutorial.pdf) – ErikR
Même l'auteur de Event ne le recommande plus, essayez AnyEvent, POE, IO :: Async, ou pour une API similaire à Event, essayez EV – MkV