Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^2: open a socket and print from stdin....i think

by rvosa (Curate)
on Oct 05, 2004 at 21:58 UTC ( #396791=note: print w/replies, xml ) Need Help??

in reply to Re: open a socket and print from stdin....i think
in thread open a socket and print from stdin....i think

I am working on the assumption that the question is about hosting a socket server that writes out responses with GET requests to whoever logs in (why???). Perhaps I am misunderstanding the original question because the responses suggesting LWP::UserAgent don't seem to address it? Anyway, something like this might work:
#!/usr/bin/perl # startup with "scriptname localport redirect" use warnings; use strict; use IO::Socket; # port to listen on, stuff to write to clients my ( $localport, $redirect ) = ( $ARGV[0], $ARGV[1] ); # setting up server my $server = IO::Socket::INET->new( LocalPort => $localport, Proto => 'tcp', Listen => SOMAXCONN, Reuse => 1 ) || die "couldn't be a tcp server on port $localport:$@\n"; # status print qq{DAEMON LISTENING ON: $localport\n}; # new connections are instantiated like so while ( my ($client, $c_addr) = $server->accept()) { # collecting details about new connection my ($client_port, $c_ip) = sockaddr_in($c_addr); my $client_ipnum = inet_ntoa($c_ip); my $client_host = gethostbyaddr($c_ip, AF_INET); # printing client info print qq{INCOMING: $client_host, $client_ipnum\n}; # retrieving whatever the incoming connection is saying while(<$client>) { print; print $client $redirect; } }
Not (really) tested.

Replies are listed 'Best First'.
Re^3: open a socket and print from stdin....i think
by hsinclai (Deacon) on Oct 05, 2004 at 23:38 UTC
    Hm.. I think all who mentioned LWP understood the OP to intend to mean
    open a socket to a remote server in order to execute the "command" found in a file

    stevenrh ?

      On second thought, I think that's what it meant too. Oops.
      Yes. I have a list of links (with session ID, etc) i need to hit on a website. Contrary to my first post, I actually need to issue the POST command.
      example..I can:

      nc -vvv 80

      and then put in my command:

      POST /HTTP/1.0

      then i hit return a few times...and i get the html output.
      as most have pointed out, I think LWP is the easiest, and best way, especially for me..

      also note, the "" is coming from an array, because it's a bunch of links in a file.

        In that case LWP still serves you well, as it is easy to change the method using get() head() or post()...

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2023-09-30 22:47 GMT
Find Nodes?
    Voting Booth?

    No recent polls found