in reply to Daemons in Perl

$sockserv = new IO::Socket::INET( LocalAddr => '192.168.1.1', LocalPort => $port, Proto => 'tcp', Listen => 1, Reuse => 1, Timeout => 60); die "can't start server: ($!)\n" unless $sockserv; $x = IO::Select->new(); $x->add($sockserv); while(1) { @handles = $x->can_read(); foreach $handle (@handles) { if($handle == $sockserv) { $sockclient = $sockserv->accept() || warn "accept: $!"; $clients++; if ($clients > 5) { print $sockclient "Sorry, we're full.\n"; $sockclient->close(); } else { $sockclients[$clients] = $sockclient; } $x->add($sockclients[$clients]); } ($cl) = grep($sockclients[$_] == $handle, (0..$#sockclients)); if ($cl) { $n_read = sysread($sockclients[$cl], $buf, 1024); return 0 if (!n_read || !length $buf); parse_external_command($buf, $sockclients[$cl]); } } }
something like that.. where parse_external_command() reads what the client said, and answers via the passed in socket if necessary.
C.

Replies are listed 'Best First'.
Re: Re: Daemons in Perl
by castaway (Parson) on Jan 15, 2003 at 09:46 UTC
    Hmm, I'm missing a:
    die "can't start server: ($!)\n" unless $blah;
    in there.
    C.