Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2014-09-21 03:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (166 votes), past polls