That's the way to do it using traditional system calls.
You can make your life a lot easier using
IO::Socket.
For instance, here's the preamble in your program:
use IO::Socket::INET;
my $socket = new IO::Socket::INET (
LocalPort => 8069,
Proto => 'tcp',
Listen => SO_MAXCONN);
while ($client_socket = $socket->accept())
{
print "Connection received from ",$client_socket->peerhost(),"
+\n";
# Do stuff with the $client_socket...
}
You've assigned $SIG{CHLD}, which implies that you're
doing some kind of
fork(), but this is not done. Maybe
this was stripped from the example. If you're not
forking,
you won't need it.
As for a "tail -f" equivalent in Perl, try this:
$good = 1;
while ($good)
{
while (<$LOGFILE>)
{
$client_socket->print($_) || $good = 0;
}
seek ($LOGFILE, 0, 1);
sleep 1;
}
There is a lot of other things you will want to handle
if you are using more than one connection, but this
is the basics.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.