Learning Network Programming with Java