In this tutorial, we will build both the server and client sides of a simple chat system. In doing so, you'll learn a basic framework that you can use when creating such a server, using time-honored techniques that work well in many situations. We'll also examine some of the limitations of this framework and explore ways of getting around them.
This tutorial is for someone with little or no experience doing networking programming. We'll cover topics such as networking and multithreading in enough detail so that you'll be able to follow the examples, even if you have little or no experience doing this kind of programming. You will, however, need to be familiar with basic object-oriented programming in the Java language.