Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

Why does connect() succeed even before my server did an accept()?

Answer Posted / chaitanya

Once you have done a listen() call on your socket, the kernel is primed to accept connections on it. The usual UNIX implementation of this works by immediately completing the SYN handshake for any incoming valid SYN segments (connection attempts), creating the socket for the new connection, and keeping this new socket on an internal queue ready for the accept() call. So the socket is fully open before the accept is done.

The other factor in this is the 'backlog' parameter for listen(); that defines how many of these completed connections can be queued at one time. If the specified number is exceeded, then new incoming connects are simply ignored (which causes them to be retried).

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Are sockets files?

874


Whats the difference between select() and poll()?

1636


Can multiple clients connect to same socket?

896


Are unix sockets faster than tcp?

847


How many sockets can a port have?

858


What's the difference between a socket and a port?

832


Is tcp or unix socket faster?

839


How do unix sockets work?

844


What is a sae socket?

922


What's better 6pt or 12pt sockets?

814


How does unix socket work?

905


Can multiple sockets use the same port?

860


What is socket programming in java?

840


How are unix domain sockets implemented?

843


system choose one for me on the connect() call? Should I bind() a port number in my client program, or let the?

1604