That's actually a huge annoyance of mine. There's no stable, cross-platform web API to get raw sockets, and I'm not sure why.
http://www.adobe.com/devnet/articles/crossdomain_policy_file...
Only Flash actually has an API like BSD sockets where you can do make TCP connection and send an arbitrary protocol over it. Hence, since they want to test protocol compatibility, they used Flash. Doubtless if Flash didn't exist they would provide a handy Python program or something, and 99% of visitors would never run it.
I've set one of these up before, and I'm not really a fan.
[1]: http://www.adobe.com/devnet/flashplayer/articles/socket_poli...