Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re^4: About non-blocking sockets

by ivanatora (Sexton)
on Aug 18, 2005 at 21:26 UTC ( #484963=note: print w/replies, xml ) Need Help??

in reply to Re^3: About non-blocking sockets
in thread About non-blocking sockets

I see the difference betwen blocking and buffering.
So, the <$filehandle> operator blocks the code? Should I use read() and write(), respective fcntl instead? I prefer to stick with <$filehandle> if possible.

Replies are listed 'Best First'.
Re^5: About non-blocking sockets
by Ven'Tatsu (Deacon) on Aug 19, 2005 at 13:28 UTC
    Any method of reading can block if a filehandle is in blocking mode. So simply changing the function used to read the data won't help.
    If you can set non blocking mode on your socket it would let you continue using readline(a.k.a. <$filehandle>), but not all systems are created equal and some may not be as non blocking as you whould like. (For example it is my experiance that sockets could not be made compleatly non blocking on a Win98 system.)
    The alternative to non blocking IO is to poll the filehandle to see if it has data to read, or can accept data for writeing. Most event frameworks like those in GUI systems or POE handle most of the work for you. The alternative is to use the 4 arg version of select or the OO wrapper around it IO::Select.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (2)
As of 2022-09-28 20:11 GMT
Find Nodes?
    Voting Booth?
    I prefer my indexes to start at:

    Results (124 votes). Check out past polls.