Whatever workarounds ppl on fora have or however you wanna say it better, it comes down to the fact that the TCL socket -server command fails.
Sockets block totally from doing anything after a while, so a tcl prog would easily be DDOSed by a single ip.
Appearantly it's been going on like that since version 8.4.1. and now 8.5.2. does still pretty much the same.
I hate to say it as tcl was always an extension for me, and it's the only language i can program in, but due to this it isn't really much more as a scripting language..
AMG: Try nonblocking I/O. Many pure-Tcl web servers exist. I know, I wrote one of them. It can handle multiple clients simultaneously. The trick is in how you write your [socket -server] callback procedure. It should initialize a few things then get out of the way, returning to the event loop; it should not do any potentially blocking I/O of its own. Of course, it will need to do some I/O, but it should go through the nonblocking mechanisms. That means [fconfigure]'ing the socket to have -blocking 0, then using [fileevent] to schedule another callback for handling incoming data. The same goes for the [fileevent] callback: use only nonblocking I/O.
If you've tried all that and still have trouble, please post a small code example showing the problem.