The FTP Server and Client have been successfully implemented using UDP. Once the server is started clients can connect to it and use the familiar FTP commands. Implementation in Java makes it platform independent and we can successfully transfer files running server in Linux and client on Windows and vice-versa.
The client supports the following commands:
|ls||Get directory listing of current directory on server.|
|cd [path]||Change directory currently in.|
|pwd||Display current path.|
|get [filename]||retrieves the filename if in current directory|
|help or ?||Display commands available.|
|quit or bye||Close client.|
|bin||Set transfer mode to Binary (Default mode)|
|ascii||Set transfer mode to ASCII|
For reliable transfer over a packet based connection the stop and wait ARQ and go-back-to N ARQ have been implemented. All commands and files are reliably transferred based on these methods respectively. Packet level error is checked using Checksum. In case of inability to send/receive the client/server is notified.
The following observations were made:
|File Size (bytes)||Packet Size (bytes)||Number of Packets||Transfer Time (ms)||Throughput (bps)||Avg Packet Delay (ms)|
The Client has been implemented in an intuitive Graphical User Interface version. The GUI has been implemented solely using the java.awt.* classes. Specifically Swing was not used to focus more on programming.
BTW... in those days I didn't know javadoc so good luck!!