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

Re: How do I do a non-blocking accept?

by Matts (Deacon)
on Aug 25, 2004 at 11:06 UTC ( #385645=note: print w/ replies, xml ) Need Help??

in reply to How do I do a non-blocking accept?

First, you setup your server:

my $server = IO::Socket::INET->new( %params, Blocking => 0 );
Then make it non-blocking, for perls that don't obey the Blocking param above:
IO::Handle::blocking($server, 0);
Then you add that server to your select vector watching for read events. When a client is waiting to be accept()ed, the select will return your server as ready to read. Just compare the sockets using == to determine if the socket is your server, and if it is, issue accept(). Note that by the time you get to it the client may have changed his mind, and so your accept could return EWOULDBLOCK or EAGAIN, so you have to check for that.

Comment on Re: How do I do a non-blocking accept?
Select or Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2015-11-29 21:54 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (753 votes), past polls