Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Socket troubles

by serf (Chaplain)
on Jan 22, 2006 at 19:35 UTC ( #524827=note: print w/ replies, xml ) Need Help??


in reply to Socket troubles

If you add use warnings; to the top of your code after use strict; you will find you get this error:

Argument "^E" isn't numeric in integer eq (==) at ./try.pl line 40.
When you do your connect. This could be a big clue for you :o)

use warnings; is your friend!

I think this should do what you want it to:

if ( $ver =~ /\x05/ && $nm ) {
or even:
my $x05 = sprintf "\x05"; # hex 05 as a raw character for ver test. for ( ; my $paddr = accept( CLIENT, SERVER ); close CLIENT ) { my ( $ver, $nm, $methods ) = (); recv( CLIENT, $ver, 1, 0 ); recv( CLIENT, $nm, 1, 0 ); if ( $ver eq $x05 && $nm ) { print "Okay, getting $nm methods\n"; recv( CLIENT, $methods, $nm, 0 ); } }
PS: your debugging could also be easier if you format your die statements more helpfully:
socket( SERVER, PF_INET, SOCK_STREAM, $proto ) || die "Can't create socket: $!\n"; setsockopt( SERVER, SOL_SOCKET, SO_REUSEADDR, pack( "l", 1 ) ) || die "Can't set socket option: $!\n"; bind( SERVER, sockaddr_in( $port, INADDR_ANY ) ) || die "Can't bind to socket: $!\n"; listen( SERVER, SOMAXCONN ) || die "Can't set max connections (listen): $!\n";


Comment on Re: Socket troubles
Select or Download Code
Re^2: Socket troubles
by bockman (Sexton) on Jan 22, 2006 at 20:19 UTC
    Why isn't 5 numeric? 5 is a number.

      Uhh, no x05 is not a number. It's a control character, ^E. If you want a number expressed, change the printf you are piping to netcat, e.g.,

      printf "510" | netcat 127.0.0.1 50000

      Scott

        How can I use it as a number? As you can see I get $nm which is the length of the following section $methods. Is what I did correct?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://524827]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2015-07-03 22:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls