The total number of sockets that you can create on Windows NT/2K/XP depends on the amount of physical memory you have (socket handles are allocated from the non-paged pool). Depending on what platform you're using, you can probably get about 3000-5000 connections; however, to approach those numbers, you're looking at writing a multithreaded program in C/C++ and using overlapped I/O.