The telnet port probably isn't opening properly because you
aren't completing the telnet negotiation sequence. I don't know whether you are familiar with this
but it involves sending small cryptic binary messages to the server
to negotiate with the client what options they both support.
I wrote a C program to do this a while back - it just NAKed all
the options the server sent it.
I discovered that some servers won't start up at all unless you
perform the negotiation (Linux telnetd is one) whereas others are quite
happy for you to charge in there ignoring the negotiation.
You could write the code for this, but as you've noted it is a
bit of a pain. However you've got several other options.
- Investigate Net::Telnet to negotiate for you
- Investigate IO::Socket to make your connections
and in particular the timeout parameter so you know when the connections have failed
- Learn how to make nonblocking sockets The Perl Cookbook will help here.
- Set an alarm - you could use my time limit module for instance.
TIMTOWDI of course!
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.