Great idea. Will check that out as well. Thanks.

But as a technical question, has anyone faced such a problem? If so, how do you resolve this?

Brian Raven wrote:

Foo Ji-Haw wrote:


Hello guys,

I seem to be stuck with this one. Need your expert input on this.

I used a IO::Socket::INET object to connect to a whois server (port
43, and no I'm not trying to parse emails to spam!). I send the
domain name and read back the whois information. Information is
returned as a series of strings. Half the time everything is ok.
Sometimes the reading is 'stuck'; the object cannot return the next
string, causing the whole program to hang. Below is the code snippet:

       my $socket = IO::Socket::INET->new(
                           PeerAddr=>$WHOISServer,
                           PeerPort=>'43',
                           Proto=>'tcp',
                           Timeout=>5,
                           Type=>SOCK_STREAM,
                           );
       return undef if (!$socket);
       while (my $line = <$socket>)
       {
           print "=>$line";
       }

I did a Telnet, and I get the same experience. Sometimes the first
few lines will come out, then the screen freezes. The only difference
is that if I press the Enter key a few times Telnet will move on and
disconnect. I interprete this as perhaps the buffer needs to be
flushed. Unfortunately, according to the documentation autoflush is on by
default. So I am at my wit's end.


I need a way to make sure my program does not hang here. Is there any
way I can timeout the reading (notice my Timeout setting in the code. Did not work when reading)?


Please advise.



Any reason for not using the a whols module? (see http://search.cpan.org/search?query=whois&mode=all and 'ppm search whois').

HTH



_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to