Java simplifies the production of client/server systems by providing
ready-made library routines for
Address -- IP addresses or domain names.
Ports -- an address in a computer for creating connections
Sockets -- a connection between one computer and an address/port on
another computer
Streams -- for reading from and writing to a socket.
Doesn't mean it can't be done in other languages, but Java makes
it a lot easier since they have spent a lot of time giving you simple
interfaces for these activities.