More than 64 sockets ?
Fri Dec 31 13:28:00 GMT 1999
On Tue, Dec 07, 1999 at 11:28:40AM +1300, Ross Smith wrote:
>Chris Faylor wrote:
>> On Mon, Dec 06, 1999 at 04:17:28PM -0500, Chris Faylor wrote:
>> >On Mon, Dec 06, 1999 at 09:54:39AM -0600, Mumit Khan wrote:
>> >>stefan <firstname.lastname@example.org> writes:
>> >>> Hello,
>> >>> we were porting a server software to Win9x/NT and had to notice that you
>> >>> cannot accept() more than 64 sockets. Why is this ? Can anyone help us ?
>> >>The underlying OS API, WaitForMultipleObjects, has a limit of 64 handles
>> >>it can wait on, and that's probably the reason. There are tricks to get
>> >>around it, but it requires creating multiple threads. Not pretty.
>> >This isn't a problem with cygwin. Cygwin uses the Winsock select() for
>> >sockets. There probably is a limit there but it's not 64.
>> Just to clarify: The "This" above refers to the WaitForMultipleObjects
>> limit of 64 handles. This particular hard limit probably does not affect
>> There is a hard-coded limit in winsock.h which is probably what is coming
>> to play here.
>This section from the Winsock Programming FAQ may be relevant:
This may be marginally relevant, but we're talking about Cygwin here.
Until a month or so ago, setting FD_SETSIZE to something else would have
been guaranteed to fail. In recent snapshots it should work.
>> 3.17 - Can I change FD_SETSIZE to make select() wait on more than 64
>> You can, but in practice it may not work. Several common Winsock
>> stacks and Layered Service Providers limit themselves internally to
>> the default value of FD_SETSIZE, 64. However, you can write a test
>> program to try this on the systems you plan on supporting, to see if
>> they are not limited. Also, you can always send each group of 64
>> sockets to a different thread, so that several calls to select() can
>> occur simultaneously.
>( http://www.cyberport.com/~tangent/programming/winsock/ )
Want to unsubscribe from this list?
Send a message to email@example.com
More information about the Cygwin