In this tutorial, we will build a little on what we learned in the first tutorial and add a few extras. In the end, we will have a better server object that is actually simpler and more maintainable than the one we created before.
To begin, let's ask ourselves the same thing we did at the beginning of tutorial 001:
What do you need to create a server?
Previously, we created a solution which addressed each one of these questions specifically. At the end of it all, we realized that our only application-specific coding was confined to the handler portion of the program. We hinted that there may be a way to eliminate hand-coding an acceptor each time we want to create a server. Here, we will explore that approach.