To run the program, you first compile both the Client and the Server scripts.
The code is then run on different terminal windows. 
The Server code is run first, giving only one argument, the port where to run it on. After a successful run, the Server is set to listen on the particular specified
port for any incoming requests.

The Client code is then run.
The code takes 3 arguments to run;
i. Port
ii. Prefix
iii. Filename

The port provided for the Client should be the same as that of the Server. This is to enable communication between the two nodes.
When it is run with the three arguments, it sends a request to the Server, which is listening on the same port. 
It requests for the strings in the filename provided beginning with the provided prefix.
The server uses the filename and the prefix to fullfill the request, and then provide feedback to the Client, still on the same port.

This enables smooth communication between the two.

The valid format for command-line use is;
java Client [port] [prefix] [filename]

eg. java Client 4000 Machi metal-albums.txt