Socket programming muddle

Discussion in 'Perl Misc' started by mwql, Nov 26, 2005.

  1. mwql

    mwql Guest

    This innocent looking piece of code is suppose to grab a webpage from a
    url.
    When the script is executed, "use of uninitialized value in print ... "

    I've checked my creation of the peer connection with several scripts
    and web resources.
    I could not notice much differences. However, I am pretty sure that the
    fault lies with the
    peer connection. The GET command works on telnet and I've ran out of
    ideas of where I could
    screw up.

    Please shed some light on this murky issue, your input are much
    appreciated.

    =======

    #!/usr/bin/perl -w

    use Carp;
    use Socket;

    $file = "www.cs.mu.oz.au/~mwql/index.php";
    $add = $1, $file_l = $2 if ($file =~ m#([^/]+)([/].*)#);
    $port = 80;

    $proto = getprotobyname ('tcp');
    print "$add $file_l $port $proto\n";

    # Create stream socket
    # Get IP address of peer

    socket (SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket not made";

    $iadd = inet_aton ($add);

    # Get local socket address
    # Bind it to our socket

    $temp = sockaddr_in (0, INADDR_ANY);
    bind (SOCKET, $temp) or die "bind unsuccessful";

    # Pack IP address of the peer with the port
    # Connect to the peer

    $ads = sockaddr_in ($port, $iadd);
    connect (SOCKET, $ads) or die "connect unsuccessful";

    # Send a sample request
    # Receive a initial response

    print SOCKET <<"yahoo";
    HEAD $file_l HTTP/1.0\r\n
    \r\n
    yahoo

    $cur = <SOCKET>;
    print $cur;

    =======
     
    mwql, Nov 26, 2005
    #1
    1. Advertising

  2. mwql

    John Bokma Guest

    John Bokma, Nov 26, 2005
    #2
    1. Advertising

  3. mwql

    mwql Guest

    =======

    #!/usr/bin/perl -w

    use strict;
    use warnings;
    use Carp;
    use Socket;

    my ($file_l, $file, $add, $port, $proto, $iadd, $temp, $ads, $cur);
    $file = "www.cs.mu.oz.au/~mwql/index.php";
    $add = $1, $file_l = $2 if ($file =~ m#([^/]+)([/].*)#);
    $port = 80;

    $proto = getprotobyname ('tcp');
    print "$add $file_l $port $proto\n";

    # Create stream socket
    # Get IP address of peer

    socket (SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket not made";

    $iadd = inet_aton ($add);

    # Get local socket address
    # Bind it to our socket

    $temp = sockaddr_in (0, INADDR_ANY);
    bind (SOCKET, $temp) or die "bind unsuccessful";

    # Pack IP address of the peer with the port
    # Connect to the peer

    $ads = sockaddr_in ($port, $iadd);
    connect (SOCKET, $ads) or die "connect unsuccessful";

    # Send a sample request
    # Receive a initial response

    print SOCKET <<"yahoo";
    HEAD $file_l HTTP/1.0\r\n
    \r\n
    yahoo

    $cur = <SOCKET>;
    print $cur;

    =======

    "Use of uninitialized value in print at perl/nget/nget.pl line 43."

    Yeah, I cannot use LWP or IO::Socket, because those packages are not
    available to me and I do not have root permissions. The second post was
    made because google didn't update my first post quickly enough, and I
    assumed that something screwed up along the way.

    Use strict and use warnings did not help with my problem, unfortunately.
     
    mwql, Nov 27, 2005
    #3
  4. mwql wrote:

    <snip: broken code>
    >
    > "Use of uninitialized value in print at perl/nget/nget.pl line 43."
    >
    > Yeah, I cannot use LWP or IO::Socket, because those packages are not
    > available to me and I do not have root permissions.


    perldoc -q "my own module"
     
    RedGrittyBrick, Nov 27, 2005
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. kj
    Replies:
    25
    Views:
    1,127
    Patrick TJ McPhee
    Apr 19, 2004
  2. Laszlo Nagy
    Replies:
    1
    Views:
    4,942
    Mark Wooding
    Jan 27, 2009
  3. Jean-Paul Calderone
    Replies:
    0
    Views:
    996
    Jean-Paul Calderone
    Jan 27, 2009
  4. Laszlo Nagy
    Replies:
    0
    Views:
    571
    Laszlo Nagy
    Feb 1, 2009
  5. mwql

    Socket programming muddle

    mwql, Nov 26, 2005, in forum: Perl Misc
    Replies:
    3
    Views:
    166
    John Bokma
    Nov 26, 2005
Loading...

Share This Page