Basic Socket API program to make simple file transfer sys using C and python/java.




Rucha Saxena Singapore


OpenJan 2, 2019
I am creating a basic file transfer system to test out. If this works well, will be following up with a bigger/more in depth project. FYI: ftserver has to be in C and ftclient in java or python.

Design and implement a simple file transfer system, i.e., create a file transfer server and a file transfer client. Write the ftserver and the ftclient programs. The final version must do:
1. ftserver starts on Host A, and validates command-line parameters ().
2. ftserver waits on for a client request.
3. ftclient starts on Host B, and validates any pertinent command-line parameters.
4. ftserver and ftclient establish a TCP control connection on . (call this connection P)
5. ftserver waits on connection P for ftclient to send a command.
6. ftclient sends a command (-l (list) or -g (get)) on connection P.
7. ftserver receives command on connection P.
If ftclient sent an invalid command
- ftserver sends an error message to ftclient on connection P, and ftclient displays the message on-screen.
otherwise, ftserver initiates a TCP data connection with ftclient on . (Call this connection Q)
- If ftclient has sent the -l command, ftserver sends its directory to ftclient on connection Q, and ftclient displays the directory on-screen.

- If ftclient has sent -g , ftserver validates FILENAME, and either
- sends the contents of FILENAME on connection Q. ftclient saves the file in the current default directory (handling 'duplicate file name' error if necessary), and displays a 'transfer complete' message on-screen
- sends an appropriate error message ("File not found", etc.) to ftclient on connection P, and ftclient displays the message on-screen.
- ftserver closes connection Q (don't leave open sockets!).
8. ftclient closes connection P (don't leave open sockets!) and terminates.
9. ftserver repeats from 2 (above) until terminated by a supervisor (SIGINT).

What I need:
- ftserver must be written in C.
- ftclient must be written in Java or Python.
- document every 2-3 lines a comment describing what is being done.
- has to run on a unix server.
o I will checkout the program via opening two instances of the shell on different servers and run each program, one to run the server and the second to run the client.
- Don't want any sendfile or predefined functions.
- Has to send a complete text file. Don't worry for an out of memory error.
- Assume same directories in program runs, no need to hardcode any directories.
- I'd like the files sent in a .zip file with a README with instructions to compile and run the server and client.

Skills & Expertise Required

C Java Network Programming Python 

Offer to work on this project closes in 101 days!

Submit A Proposal

Share this project with your friends

Freelancers You May Hire

Here are our top professional picks for you to hire

Similar Projects

Browser Automation

We are looking for a browser automation script that will grab all members of a meetup group.

and individually send them a private message on meetup. With the following syntex:

```read more

Fixed, $100.00

Programming Content reviewer/creato...

We are looking for educational content reviewers/creators with programming background (Swift, C). You will mostly be reviewing user generated content (programming quizzes), reviewing community more

Hourly, $12.00

Support Engineer - full-time positi...

We are seeking proven high performers who have consistently achieved success against challenging objectives and are looking for the next great opportunity.

- Interacts with more

Hourly, $16.00

Django Developer for exciting EdTec...

We are working in a Django based platform which will use advance ML algorithms to help students overcome their learning difficulties in math and science. We require a software engineer to help us more

Fixed, $8,000.00

Devops with Terraform and AWS exper...

We have 10+ environments of our product stack that is moving from ad-hoc to devops practices, we need +1 devops engineer for the team to crack tasks faster.
Azure / Java experience is a plus.

Hourly, $20.00