You are required to implement a very simple FTP server and client. The server (using TCP sockets) should take the list of available files as command-line arguments.
java [url removed, login to view] [url removed, login to view] [url removed, login to view] [url removed, login to view]
The client should take the server address and port as command-line arguments.
java [url removed, login to view] 192.168.1.1 5115
Then, the client should wait for user input from STDIN, and should support the following three commands:
dir -- retrieves the list of files offered, and prints them on the screen
get <filename> -- retrieves the file with the given filename
bye -- closes the communication with the server and exits
Any other input should be ignored (not exiting!) with a simple “syntax error” message printed on the screen.
For the TCP sockets implementation, your client should connect to the server, and send it a String (use ObjectInputStream and ObjectOutputStream) containing one of the following commands, expecting the respective responses from the server:
dir -- The server sends back a String containing the filenames of available files
blocks filename (for instance: blocks [url removed, login to view]) -- The server sends back an integer (use [url removed, login to view]()) denoting the number of 1024-byte blocks in that file. For instance, if a file has 5000 bytes, it has 5 blocks (4 blocks of 1024 bytes and a final block of 904 bytes)
get filename block (for instance: get [url removed, login to view] 4) -- The server sends back a 1024 byte long block of the file. The last block of the file may have less than 1024 bytes.
Program functions and features:
Relevant and meaningful error messages during the operation of the Client and Server programs
Option to choose the desired folder(s) and file(s) for both Server and Client environment
Option to search for the desired file to Send or Receive for both Server and Client environment
Ability to a transfer file in both direction between Server and Client
Transferring of different file types and sizes