This is part two of a three part series on writing Java programs that use and implement Internet services. In part one (see Java and Internet Programming: Introduction ) , I covered protocols, sockets, and ports, and showed a simple client program. In this part, I show you some more client programs, some server programs, and the basics of using UDP.