The server and the client ``talk'' to each other using the standard TCP/IP connection provided by the POSIX socket interface (that is supported both in Java and in other POSIX compatible languages such as C/C++).
Over this link we implemented our own simplified protocol used for communication between the client and the server.