FTP Client |
I propose to develop a multi-platform FTP client. This FTP client will be used to transmit data between two separate computer systems via a network connection (i.e. LAN, internet, etc.). The client will be programmed with object oriented programming techniques as a Java application. The client will also be able to follow both models outlined in the RFC 959 specification for the file transfer protocol.
The first model, shown in figure 1, is comprised of two separate computer systems. The client (i.e. the user’s computer) will have a user interface that provides the user with a file system of the clients system and a file system of the host (i.e. the FTP server) system. The user will be able to navigate the file systems; transfer copies of the files from and to the host file system; and delete files from these systems. The host will receive commands from the client via the command control stream. The client will wait for the host to reply to the commands with positive, progressive, or negative replies through the same command control stream. The client will use the replies as a basis to continue, prompt the user for more information, or to cancel the action. The client will create a data stream between it and the host in order to transfer copies of files, and to transfer the information of the files (i.e. names, sizes, permissions, etc.) at the specified location of the host file system |
The second model, shown in figure 2, is comprised of three separate computer systems. The client will have a user interface that will provide it with the file system of the two host systems. The user will be able to navigate the file systems, transfer files from one hosts file system to the other hosts file system, and delete files from these systems. The hosts will receive commands from the client via a command control stream to each of the hosts. The client will perform the same operations of the single host model, but their will also be a data connection between the two hosts. This data connection will be used to handle the transferring of the copies of files between the two hosts. There will need to be a data connection between the hosts and the client in order to transfer the information of the files (i.e. names, sizes, permissions, etc.) at the specified location of the hosts file systems. |
At this time, there are two different problems that cannot be resolved in the two server model. First, upon transfering copies of files across the data connection between the servers, there will be no way to see the progress of the transferance of the files. Second, the data connection between the two servers will have to be a passive connection. In other words, if one of the servers being used does not permit passive connections, the data connection will not be established. |