Link to home
Start Free TrialLog in
Avatar of aburgoyne
aburgoyne

asked on

Delphi 2009 TCP communication system

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.

Thx, Adam
Avatar of Emmanuel PASQUIER
Emmanuel PASQUIER
Flag of France image

I'm pretty sure this is a system limitation, not a component limitation.
I mean, if you tried the 3 most common sets :
- TServerSocket (delphi old WinSock wrapper)
- ICS (Internet Component Suite)
- Indy
and they all give you the same problems, then you should not look the solution in the code, but in some registry parameter or OS documentation about CNX limitations
ASKER CERTIFIED SOLUTION
Avatar of Emmanuel PASQUIER
Emmanuel PASQUIER
Flag of France image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
defaults are a bit different for Vista / 2008
http://support.microsoft.com/kb/929851/en-us?fr=1
Check that limitation as well :

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters]
MaxFreeTWTcbs = 1000 (Default = 1000 sockets)
Avatar of aburgoyne
aburgoyne

ASKER

Hi, epasquier - thanks for the information.

I tried the registry settings suggested and it has improved things but I'm still topping out at about 16,000 connections :-(

I need to get as far above 50,000 as possible (65,000 seems to be the ceiling) so any other ideas?

rgds, Adam
Just couldn't get sufficient connections with TCP so now looking at UDP.

Thanks anyway.

Adam