P.S> It will be good if you remove all your threads and use also async IO for file I/O. In case of completely Async processing you will get maximum CPU performance.
I would love to do that, and I will definitely aim for that in another server project that is more asynchronous in nature.
But I cringe at the logic necessary for writing a telnet server where there are prompts that must wait for user input and user input is processed key by key and telnet option codes must be negotiated in the correct order in a specific time frame.
Plus, of course, there's also the timed events that must occur at specific intervals.
The logic of implementing this in a telnet server is making my head hurt already. But I will definitely try it for other servers I'm writing.
Thanks for all the great information by the way.. All of you! I appreciate it a lot.