An introduction to network programming with java : Java 7 compatible.