SPUG: Socket daemons
Timothy A. Gregory
tgregory at tarjema.com
Fri Jun 22 19:06:58 CDT 2001
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I'm sure I'm missing something very simple here, please point it out to me
;-)
I've written a small script that I want to have sit listening to a port
and stay there. If a connection comes in it will process the data (an XML
stream to be stuffed into a database). Right now it quits at that point,
but I want it to stay running so the 10 other clients trying to send it
XML reports will have someone to talk to.
listener.pl:
#!/usr/bin/perl -w
use strict;
use IO::Socket;
use DBI;
use XML::XPath;
my $server = IO::Socket::INET->new(
Listen => 10,
LocalAddr => '192.168.1.222',
LocalPort => 8888,
ReuseAddr => 1,
Proto => 'tcp'
) or die "Can't create server socket $!\n";
my $client = $server->accept;
my $xp = XML::XPath->new(ioref => $client);
my $dbh = DBI->connect('dbi:mysql:mon', 'monitor', 'sillypass')
or die $DBI::errstr;
my $sth = $dbh->prepare(qq{INSERT INTO stats VALUES (?, ?, ?, ?, ?, ?)});
foreach my $row ($xp->findnodes('/semaphore:net/output')) {
my $cust_name = $row->find('cust_name')->string_value;
my $host_name = $row->find('host_name')->string_value;
my $ip_addr = $row->find('ip_addr')->string_value;
my $up_down = $row->find('up_down')->string_value;
my $pmin = $row->find('pmin')->string_value;
my $pmax = $row->find('pmax')->string_value;
$sth->execute($cust_name, $host_name, $ip_addr, $up_down, $pmin, $pmax)
|| die $DBI::errstr;
}
Thanks!
- --tag
+--------------------------------------------------+
| Timothy A. Gregory http://www.tarjema.com |
| *NIX SysAdmin tgregory at tarjema.com |
| Arabic > English Translator IBM AIX CATE |
+--------------------------------------------------+
Habit is habit and not to be flung out of the window by any man, but
coaxed downstairs a step at a time.
- --Mark Twain
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (FreeBSD)
Comment: For info see http://www.gnupg.org
iD8DBQE7M92of+LtXvUUOyoRApSHAJoCKT/30TCpKVxCD9FZ7/wLmQq7iACgilqU
a+N8d9DaNKWKobo+rprXKf0=
=Av0r
-----END PGP SIGNATURE-----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
Subscriptions; Email to majordomo at pm.org: ACTION LIST EMAIL
Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
For daily traffic, use spug-list for LIST ; for weekly, spug-list-digest
Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/
More information about the spug-list
mailing list