Phoenix.pm: Net::Telnet

Matt Alexander m at pdxlug.org
Wed Jan 14 18:40:53 CST 2004


On Wed, 14 Jan 2004, Scott Walters wrote:

> There is an example of raw sockets on phoenix.pm.org website,
> but IO::Socket::INET is about the right level of abstraction for
> what you're doing. Clearly Net::Telnet is too much of the wrong
> abstraction. Raw sockets are usually too little abstraction.
>
> >From the man page:
>
>               $sock = IO::Socket::INET->new(PeerAddr => 'www.perl.org',
>                                             PeerPort => '80',
>                                             Proto    => 'tcp');
>
> You can then print to $sock, $sock->print("foo!\n"), read from it,
> read $sock, my $buffer, 8192, read lines from it, my $line = readline $sock,
> and so on, just like a normal IO::Handle.

I ended up using raw sockets and I can now grab all the data, but I'm not
sure how to disconnect after a certain period of time.  The device I'm
connecting to doesn't give any indication of when it's done sending data.
So I basically need to grab everything, set an overall time limit of say,
5 seconds, and then disconnect after that time limit.
Any suggestions?
Thanks,
~M



More information about the Phoenix-pm mailing list