Ask Question, Ask an Expert

+61-413 786 465

info@mywordsolution.com

Ask Computer Engineering Expert

Programming Assignment

File Sharing System (FSS) using only Java sockets

You are charged with building a simple file sharing system (FSS) using a simple command line interface. The FSS consists of two types of entities: a file server and many clients. In this FSS:

• The client MUST be able to upload files to the file server. It's fine to upload them one at a time. If the file already exists, replace it.

• The client MUST be able to download a given file from the file server, by providing the full filename path to the file server. If the file does not already exist, it MUST return an error message on standard error and return a non-zero error code.

• The client MUST be able to list the file system objects (files and directories) on a file server directory, including the file server's root ("/") directory. If the requested directory does not exist, it MUST report an error message on standard error and return a non-zero error code.

• The client MUST be able to create a directory (if the directory does not exist) and remove empty directories (if the directory is empty), and MUST be able to report whether or not these operations succeeded. If there's an error, it MUST report an error message on standard error and return a non-zero error code.

• The client MUST be able to remove a given file from the file server, by providing the full filename path to the file server. If the file does not already exist, it MUST return an error message on standard error and return a non-zero error code.

• The file server MUST allow multiple clients to simultaneously connect to a single file server for upload/download, and allow for apparently-simultaneous transfer (e.g., it's NOT okay for the file server to wait for one transfer to complete before another begins).

• Clients MUST be able to cleanly shut down the file server.

• The system MUST support the resume upload and download: If a file transfer between a client and a server is interrupted (because the network, server, or client has failed), the same client MUST be able to resume upload/download at the file server from the same point of progress by re-requesting the same filename. In other words, the client MUST NOT have to upload/download the data that is already uploaded/downloaded. Note that you have to handle server crashes too - you may want to use "flush()" in the server. In order for the TA to verify that you have implemented this functionality the program MUST print the progress of upload/download as it's proceeding, including an indication that a partial download is skipping re-download of some portion of the file.

The client will need to know how to contact the server; for this exercise, the client MUST accept this in an environment variable named PA1_SERVER with the computer name, a colon, and the TCP portnumber (e.g., "localhost:8000"). The server will need a place to store its data; its file system "root" MUST be the current directory for when it is started.

Do not make any other assumptions about the properties of the file. The file sharing system MUST be able to exchange files of any type and with arbitrary filenames. Note: Linux/Unix filesystems are normally case-sensitive, but Windows/MacOS are normally case-insensitive; you don't need to provide case-sensitive functionality on non-case-sensitive systems, but it MUST maintain the upper/lower case provided to it since that information matters on some systems. If there's no error, return an error code of 0 (no error).

When developing your system you MUST use Java, and for the networking portions you MUST use ONLY the Java sockets libraries (no JMI, etc.). No other use of third party software is allowed, unless explicitly permitted by the instructor. For purposes of this exercise we'll totally ignore security, e.g., no authentication or authorization is needed. Note that illegally downloaded files (i.e., files violating the copyright laws) may not be used for developing, testing, or demoing your assignment.

Deliverables

• Executable and self-contained jar files.
• A read-me text file.
• Source Code in Java.

Executable and self-contained jar files: The program MUST be implemented as a single jar file containing both server and client.

A read-me text file: The text file MUST provide step-by-step instructions for running and testing your software. It MUST also clearly list the location of server's storage folder i.e. the location where the server stores the received files.

Source Code in Java: the source code submitted for your program MUST match the executable jar file.

Below are commands that your system MUST support (we plan to create a test script), in order of the overall requirements above. Unix syntax shown:

java -cp pa1.jar server start &
# To set up client so it knows what server to talk to:
export PA1_SERVER= # On Windows: set PA1_SERVER=.....
java -cp pa1.jar client upload
java -cp pa1.jar client download
java -cp pa1.jar client dir
java -cp pa1.jar client mkdir
java -cp pa1.jar client rmdir
java -cp pa1.jar client rm
java -cp pa1.jar client shutdown

Below is an example:
mkdir -p server ; cd server
java -cp pa1.jar server start 8000
cd .. ; mkdir -p client1 ; cd client1
export PA1_SERVER=localhost:8000
java -cp pa1.jar client upload text1.pdf /folders/text1.pdf
Uploading file .... 50% (changes real-time)
File uploaded.
(start another client)
cd ..; mkdir -p client2 ; cd client2
java -cp pa1.jar client download /folders/text1.pdf copy_of_text1.pdf
Downloading file .... 50% (changes real-time)
File Downloaded.
java -cp pa1.jar client shutdown

Wrong instructions or faulty jar file would prevent the TA from grading your assignment.

Turn in your program (both source code and compiled jar) via Blackboard.

Computer Engineering, Engineering

  • Category:- Computer Engineering
  • Reference No.:- M92775306

Have any Question?


Related Questions in Computer Engineering

Question suppose that the coins of the fictional country of

Question : Suppose that the coins of the fictional country of Combinatoria come in the de- nominations, d1, d2, . . . , dk, where d1 = 1 and the other di values form a set of distinct integers greater than 1. Given an in ...

Design a combinational circuit with three inputs a b and c

Design a combinational circuit with three inputs: A, B, and C, D and the output W. The output should be 1 only when the values of A, B interpreted as an unsigned integer (AB) is equal to the values of C, D interpreted as ...

Question 1two variables have a negative non-linear

Question 1 Two variables have a negative non-linear correlation. Does the dependent variable increase or decrease as the independent variable increases? A)Dependent variable would remain the same B)Dependent variable inc ...

Question subject digital securitybriefly explain how

Question : Subject: Digital security Briefly explain how Android 3.0 and later versions encrypt file and user data, and how encryption keys are derived. The response must be typed, single spaced, must be in times new rom ...

Question we are running the insertion sort algorithm on the

Question : We are running the Insertion Sort algorithm on the array A = . a) Write the array A at the start of the iteration j=5 of the for loop. b) What is the value of i at the start of the iteration j=6 of the for loo ...

Albert hoffmans wife has an ipod shuffle with five songs in

Albert Hoffman's wife has an iPod shuffle with five songs in her library: November Rain  by Guns 'N Roses Ain't No Mountain High Enough  by Nicholas Ashford and Valerie Simpson Call Me Maybe  by Carly Rae Jepsen Rainbow ...

Suppose i am designing a personnel database for a

Suppose I am designing a personnel database for a university. The university has three types of personnel: students, staff, and faculty. Here are the characteristics of the three groups: -All three groups have a name and ...

Question suppose jim is in a middle school band that is

Question : Suppose Jim is in a middle school band that is selling cookie dough. His mom sends emails to all the employees of her company (100 people), inviting them to stop by after work to place orders for the cookie do ...

Suppose the probability density function for a random

Suppose the probability density function for a random variable X equals the following:  f(x) = cx 3  for {0 (a) Solve for the value of "c" that makes this a valid pdf. (Hint: please refer to the two necessary conditions ...

Restaurant management database project the restaurant

Restaurant Management Database Project : The restaurant maintains the catalog for the list of food and beverage items that it provides. Apart from providing food facility at their own premises, the restaurant takes order ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As