I'm working on an emulator project and I was wondering if someone could give me few tips on design patterns for multi-connection servers. So far I've been using simple windows sockets and functions(send,recv,few other) with a thread for each connection. I feel like this is not a good path. Server is mostly reactive and almost never is proactive. Also one clients actions effect other clients heavily. Are there any articles/books you guys could recommend on single threaded server designs meeting my projects requirements ? I'm also opened for multi-threaded design suggestions.
Edit: I've read a bit about I/O designs with winsock 2. Seems like overlapped model with completion ports has the best performance. Are there any implementations with explanations you could recommend ?