Leser: 1
|  |  | 6 Einträge, 1 Seite | 
1
2
3
4
5
6
7
8
9
10
while (my $client = $server->accept()) {
    if (fork() == 0) { # child (Kindprozesse kümmern sich um die einzelnen Clients)
        $client->autoflush(1);
        print $client "Welcome to $0. Please log in.\n";
        while (<$client>) {
            if (...) {} # prüfen was der client schickt...
            elsif (/quit|exit/i) { close $client; last; }
        }
    } # end if fork() == 0
} IO::Select verwalten, dann brauchst Du nur einen einzigen Prozess.
IO::Select verwalten, dann brauchst Du nur einen einzigen Prozess. IPC::System::Simple,
IPC::System::Simple,  Path::Class
Path::Class IO::Select an, da steht auch ein Beispiel.
IO::Select an, da steht auch ein Beispiel.
 IPC::System::Simple,
IPC::System::Simple,  Path::Class
Path::Class1
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...
}
}
}
}
|  |  | 6 Einträge, 1 Seite |