Bonjour,

Je suis en train de programmer un démon qui lance un serveur socket (io::socket) et attends les commandes d'un client.

Sur ce serveur, je voudrai créer un système d'acl (access list par adresse IP),
mais je ne sais pas comment déconnecter le client depuis le serveur.

Voilà mon code côté serveur :
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
while (my $client = $server->accept()) {
        $client->autoflush(1);
 
        print $client "Bienvenue sur le serveur $serv_name\n";
        my $hostinfo = gethostbyaddr($client->peeraddr);
        &set_log($log,"[Connexion de ".$client->peerhost."]","info");
        print "[Connexion de ".$client->peerhost."]";
 
        while (<$client>) {
                #print $client "\n--> $_\n";
                &set_log($log,$client->peerhost." -> $_","info");
                next unless /\S/;
                if    (/quit|exit/i) { last; }
                elsif (/date|time/i) { printf $client "%s\n", scalar localtime; }
                elsif (/who/i ) { print $client `who 2>&1`; }
                else { print $client "Commandes:\n----------\n?\nhelp\ndate\nwho\n"; }
        }
        close $client;
}
Une idée ?

[edit] J'ai finalement trouver comment faire.