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

Re: Re: Re: Re: Activeperl 5.6 fork() doesn't friggin work

by jtx (Initiate)
on Apr 18, 2002 at 18:20 UTC ( #160297=note: print w/replies, xml ) Need Help??

in reply to Re: Re: Re: Activeperl 5.6 fork() doesn't friggin work
in thread Activeperl 5.6 fork() doesn't friggin work

What I have been able to do, though it is a cheap hack and will probably have to be re-written if I want this to be a serious program, is taken your idea of using a while loop and somewhat modifying the server/client. This is the modified client, and it works, though like I said, I think it's pretty cheesy:
#!/usr/bin/perl use IO::Socket; # Make our connections my $ns1 = new IO::Socket::INET (PeerAddr => 'ns1', PeerPort => 1200, Proto => 'tcp' ) or die "Couldn't create socket: $!\n" +; my $line; my $count = 0; my $domain = ''; my $ipaddress = ''; while ($line ne 'CAIO') { if ($count == 0) { print $ns1 "HELO\n"; $count++; } elsif ($count == 1) { print $ns1 "dom:$domain\n"; $count++; } elsif ($count == 2) { print $ns1 "ipaddr:$ipaddress\n"; $count++; } elsif ($count == 3) { print $ns1 "addzone\n"; $count++; } sleep(1); chomp($line = <$ns1>); print "$line\n"; } close($ns1);
As you might have gathered, the server is a name server, and this program was created to add zones via sockets. It's irrelevant to me at this point whether or not BIND supports this natively - This is just a good way for me to practice using Sockets and TK, and make my boss happy while I write programs that will eventually end up being my replacement :)

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Activeperl 5.6 fork() doesn't friggin work
by premchai21 (Curate) on Apr 19, 2002 at 01:57 UTC


    my (@cmds) = ("HELO", "dom:$domain", "ipaddr:$ipaddress", "addzone"); while (@cmds) { print $ns1 shift(@cmds), "\n"; $line = <$ns1>; # don't need the sleep; # the read should block until # a line is available. defined($line) or last; # quit if connection closed # (could die instead) print $line; # don't need \n now, $line # not chomped ($line =~ /^CAIO$/) and last; # $ can handle trailing # newline, with no # significant speed penalty # (should be optimized by # regex engine) }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://160297]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2018-06-24 12:10 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.