4759 Project 2 Description

The implementation of a client/server system that transfers files between the client and server is the goal of project two. In brief, you must use the DATAGRAM service of the Berkeley sockets to provide a reliable delivery layer, and on top of the reliable delivery layer you must implement a file transfer client and a file transfer server.

A preliminary description of the protocol is given by this document.

The client is a simple FTP-like program that allows you to fetch files and list directories on a remote machine. The client must support the following commands:

open host
Open a connection to the specified host.
Close the current session.
List the contents of the current directory.
cd dir-name
Change the current directory to dir-name. dir-name is relative to the current directory unless the intial character is a '/'. If the specified directory is not valid, then an error message must be printed.
get file
Fetch the indicated file. Report the following errors: a missing file on the server or an inability to create a local copy.
put file
Copy the indicated file to the remote machine. Report an error if the copy fails or if the local file can not be accessed.

If your group has three members, then you must complete the following additional features.