Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Reading from a socket

by ozone (Friar)
on May 17, 2002 at 12:31 UTC ( #167282=note: print w/replies, xml ) Need Help??

in reply to Reading from a socket

Well, you don't say whether you're using standard sockets, but if you are, the easier way is to use IO::Socket::INET to connect to the server, then set it to non-blocking mode like so:
my $socket = IO::Socket::INET->new(.....); $socket->blocking(0);
You can the use IO::Select to find out when some data is ready for reading.

Replies are listed 'Best First'.
Re: Re: Reading from a socket
by tomservo (Initiate) on May 17, 2002 at 12:55 UTC
    Oops, that is somewhat of an important detail. Yes, I am using IO::Socket::INET. Thank you for the response. Also, I read over the sections on IO::Select in the "Perl Cookbook" and though the theory sounded great, the application of it appeared to be extremely obtuse and I ended up generating more problems that way. Right now, I am just going to stay as basic and clean as possible since this is my first stab at sockets with Perl.

    As a note, the program that I am writing uses a Perl proxy that runs on a box that is inside a firewall and receives requests from a browser that is inside the same firewall. The Perl script then encrypts the request and sends it through the firewall to the other part of the "tunnel" which is an app written in C that decrypts the request and sends it to the appropriate web server and the process is reversed. When I have finished it I will post all of the code here for anyone that is curious or interested. It is not very practical since not everyone has a Linux box outside a firewall to tunnel requests to but it is just an academic exercise to pick up some network skills.

    -Tom Servo

      Hmmm, well, I've had a similar problem, and I basically just used Squid to handle the HTTP side and then an ssh tunnel to get through the firewall. Most browsers support proxies natively. :-)

      Also, LWP::Simple Perl module would probably do the job in for the HTTP requests, if you're absolutely stuck. Why reinvent the wheel? ;-)

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (3)
As of 2022-05-18 13:12 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (70 votes). Check out past polls.