I'm currently using Indy to communicate with TCP/IP devices. We have about
30000 devices and growing. We're getting to the point where the number of
concurrent connections are too many too handle for a single Indy server
instance. I have to start looking at load balancing but before I do that I
want to have a look a asynchronous sockets.
In extreme cases we have about 3000 concurrent connections but Indy can't
cope with that so we limit it to 1000 and queue the remainder.
My system was designed in such a way that devices can communicate with each
other through the TCP server. Whenever a device has information for another
device, the information is placed in a thread list from where the other
device will periodically check the thread list to see if there is any
information for it. If there is any information for it, it will read it
from the thread list and then write it to its socket.
Coming from Indy, each socket is in its own thread and therefore its easy
for a device to periodically check the thread list for new information. I
also use the thread to determine the idle time of a socket and close the
socket if its been idling for too long.
ICS is more event driven and a like this but how do I go about checking the
thread list periodically?
I've been looking at a timer with a message pump but can't seem to get it
Thanks in advance.
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be