Skip to content

cberman/FTP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WHAT IS THIS PROGRAM?
---------------------

This program is used to find transfer files over a network connection.
It is similar to FTP (File Transfer Protocol), except I coded it 
myself.  See http://en.wikipedia.org/wiki/Ftp for a basic understanding
of what it is.


FILE LIST
---------

README  		This file.
FTPClient.java		Java program for the server tool.
FTPServer.java		Java program for the client tool.
server.cfg		Configuration file for server options.


INSTRUCTIONS
------------

There are two tools included in this package: the client and
the server.  To run either one, navigate to the directory they
are stored in and use the java command.  
To connect using the client, the address of the server should be 
entered in the form IP:PORT where IP is the address of the server 
and PORT is the port the server is being run on.  If no port is 
specified, 5000 is used.  The commands listed below are then used
to download files.  All files retrieved will be placed in a new
Downloads folder.
The server requires no active participation to run.  It prints to
standard out all IP addresses that connect.


CLIENT COMMANDS
---------------

-cdup		Moves to the parent directory.
-cwd		Changes the working directory.
-fget		Downloads an entire directory along with all its
		subdirectories.  Uses a Stack.
-flist		Lists the files in the specified directory.
		If no directory is specified, the current one
		is used.
-dist		Lists the subdirectories of the specified directory.
		If no directory is specified, the current one
		is used.
-list		Lists everything in the specified directory.
		If no directory is specified, the current one
		is used.  Uses a Queue to perform a BFS.
-mdtm		Returns the time the file was last modified in
		milliseconds since the epoch.
-mget		Retrieves multiple files.  Uses wildcards such as * and ?.
-noop		Checks to make sure the server is responding.
-pwd		Prints the working directory.
-retr		Retrieves the specified file.
-dele		Deletes a remote file.
-size		Returns the size of the specified file or
		directory.  Flags include -k, -m, and -g for
		printing the size in different units.  Uses a
		Stack to perform a DFS.


server.cfg
----------

These headers are automatically generated on the first run, but can be changed.

CONNECTIONS: The maximum number of connections allowed to the server.  Any integer from 0 to about 1023.
CONNECT: The message sent to a client when it connects.  Can be anything.
DIRECTORY: The default directory clients start at.  Any directory on your computer.
ROOT: The highest directory clients are allowed to navigate to.  Any directory on your computer.
PORT: Which port the server should be run on.  Any integer from 0 to 65535.
CHECKSUM: Whether or not to confirm integrity of file downloads.  YES or NO.
DELETION: Whether or not users are allowed to delete files from the server.  YES or NO.


POSSIBLE HARDWARE FAILURE
-------------------------

This has never been tested on a Mac, and the most likely thing to fail on one would be folder navigation.


DISCLAIMER
----------

THIS PROGRAM AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.


THANKS
------

Happy file transfering and thanks for downloading,
Collin Berman

About

APCS final project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages