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
- Close the current session.
- dir
- 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.
- Your server must be able to deal with multiple clients.
- You must implement a sliding window protocol.