I'm using Delphi 2009 and I'm trying to put together a kind of client and server communication system for product authentication.
Essentially, the server application will sit on a Win 2008 box and wait for clients to announce themselves.
A client sends a serial number which the server looks up in a database.
If the serial number is disabled then the server sends back a "get lost" message and closes the socket connection.
If the serial number is authenticated then the server will communicate with the client as neccessary.
I've tried a few TCP components to test the process but I'm having a similar issue with all of them - the number of concurrent connections is not sufficient.
For each "server", I've built a client capable of initiating multiple connections. When testing locally (server and client using 127.0.0.1), the best I've managed is about 30,000 connections but testing between two Win 2003 servers in a datacenter is giving much worse results - about 5,000 connections before I start getting drop outs.
I believe that Win 2003 / 2008 should be able to support around 100,000 connections so I'm at a loss as to why I'm seeing such low numbers in testing.
If anyone has any suggestions or, better still, some example code to get beyond the limits I'm experiencing then that would would be awesome.