Thread Server, auf mehrere Clients schreiben (5 answers)
Opened by .mike. at 2007-02-11 21:41

.mike.
 2007-02-23 21:51
#37456 #37456
User since
2006-04-07
26 Artikel
BenutzerIn
[default_avatar]
Hallo Andy,

hier mal was von meinem Code
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
my $server = IO::Socket::INET->new(Proto => 'tcp',
                                                       LocalPort => $port,
                                                       Listen => 5,
                                                       Reuse => 1) || die "Socket: $!";

my $select = IO::Select->new($server);

while (my @ready = $select->can_read()) {
    foreach my $handle (@ready) {
        if ($handle == $server) {
            my $newclient = $server->accept();
            $newclient->autoflush();
            $select->add($newclient);
            print $newclient "Hallo, bitte logge dich ein\n";
        }
        else {
            if (defined (my $line = <$handle>)) { # hier steht was der client geschickt hat und dann halt entsprechend reagieren...
            }
        }
    }

}

hab dann noch ein globales hash %users in dem einmal (nach dem login) name => handle und handle => name gespeichert wird und das bei jedem user der sich einloggt.
dann kann ich jewils über $users{name_eines_users} auf das bestimmte socket für diesen user zugreifen und so mehrere sockets managen

#edit:
wenn jemand ne bessere, sicherere oder effizientere methode kennt, dann bitte sagen :)

View full thread Server, auf mehrere Clients schreiben