There have been many discussion here over the years about how many
sockets ICS supports in the same thread.  A user of my ComCap
application needs to collect remote data from 2,000 sensors calling in
over the internet, so I improved my ComGen data stream generator to
create multiple streams, both SSL and non-SSL.  Both these tools will
be available in a couple of weeks. 

The ComGen tool uses an array of TMagIpLog log streaming components,
each sending one line of data per second, with 100 new connections
being started each second (configurable). 

The ComCap tool has a simple TSslWSocketServer accepting connections
and saving data from all of them to the same log file, 

Running both tools on the same Windows 10 PC, I can run 2,000
simultaneous SSL sessions or sockets, with a single thread at each end,
which is a little surprising, I though client versions of Windows might
be restricted to fewer sockets.

It is necessary to restrict the number of new connection attempts each
second, otherwise the SSL handshaking can not keep up and new
connections are rejected.  In that 2,000 test, about 300 failed the
first connection, but connected on the automatic retry after 30 seconds.

The major issue I had testing was actually displaying progress, I like
to see log lines scrolling in a TMemo or similar, but Windows simply
can not scroll lines at any speed, so I changed to saving log lines and
updating the TMemo once a second instead, removing old lines at the
same time.  

I have tried a similar test with the ICS web server, ComGen will
generate GET, POST and PUT requests, but here each session to read a
few pages lasts less than one second and then closes, and repeats, so
we get into limit of number of new connections per second instead of
maximum number of sockets.  Still thinking about a sensible stress test
for the web server.    


To unsubscribe or change your settings for TWSocket mailing list
please goto
Visit our website at

Reply via email to