delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/12/06/18:08:32

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
From: Chris Faylor <cgf AT cygnus DOT com>
Date: Mon, 6 Dec 1999 18:07:43 -0500
To: Ross Smith <ross DOT s AT ihug DOT co DOT nz>
Cc: cygwin AT sourceware DOT cygnus DOT com
Subject: Re: More than 64 sockets ?
Message-ID: <19991206180743.A10476@cygnus.com>
Reply-To: cygwin AT sourceware DOT cygnus DOT com
Mail-Followup-To: Ross Smith <ross DOT s AT ihug DOT co DOT nz>,
cygwin AT sourceware DOT cygnus DOT com
References: <Pine DOT LNX DOT 4 DOT 10 DOT 9912052255370 DOT 691-100000 AT bono DOT reversers DOT net> <199912061554 DOT JAA15146 AT hp2 DOT xraylith DOT wisc DOT edu> <19991206161728 DOT C2223 AT cygnus DOT com> <19991206164843 DOT B9747 AT cygnus DOT com> <384C3898 DOT 43BD108 AT ihug DOT co DOT nz>
Mime-Version: 1.0
X-Mailer: Mutt 1.0i
In-Reply-To: <384C3898.43BD108@ihug.co.nz>; from ross.s@ihug.co.nz on Tue, Dec 07, 1999 at 11:28:40AM +1300

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 <stefan AT linux DOT f1 DOT fhtw-berlin DOT de> 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
>> cygwin.
>> 
>> 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.

cgf

>> 3.17 - Can I change FD_SETSIZE to make select() wait on more than 64
>> sockets?
>>
>> 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 cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019