Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Tailing a file to a TCP socket

by tadman (Prior)
on Aug 01, 2001 at 22:00 UTC ( [id://101461]=note: print w/replies, xml ) Need Help??


in reply to Tailing a file to a TCP socket

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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://101461]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2024-04-24 19:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found