-
Notifications
You must be signed in to change notification settings - Fork 0
FTP Client based on RFC 959
License
kalwar/NetworkProgramming
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
---------------------------------------------------------------------------------------------------------------------------- Reference taken from http://www.it.lut.fi/kurssit/07-08/CT30A5000/home-exam.html http://www.faqs.org/rfcs/rfc959.html Stevens, W.: TCP/IP Illustrated Volume 1, page 419 http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html ----------------------------------------------------------------------------------------------------------------------------------------------------------- Synopsis The task was to make a FTP Client based on the RFC 959.It must be able to transfer a file of up 10 MB using the FTP Protocol Type of the file can be either ASCII or Binary.The client should communicate with standard FTP servers. Access to FTP Server is given in the assignment. ----------------------------------------------------------------------------------------------------------------------------------------------------------- Commands Implemented The client recognizes the following commands, Which are basically front-end commands. get: get file from server put: save file on server ls: show listing of files on server cd: change remote working directory ascii/binary: Set the file transfer type to ASCII or Binary (only binary has been implemented for file and ASCII for directory listings.) open: open server connection, user needs to send user id and password (tries for 3 times and quits) close: close connection with server quit: exit the FTPClient passive: Active and passive connection mode is been implemented. cd.. : Change the directory to one level up ----------------------------------------------------------------------------------------------------------------------------------------------------------- Structure of FTP Program User at terminal --------->FTP Client------>Control connection ------>FTP Server enters commands (FTP commands, replies) open, ls, close, quit, passive,get ------->Data Connection put (File data) ----------------------------------------------------------------------------------------------------------------------------------------------------------- Output preeti:~/network programming/ass7> make gcc -g -Wall FTPClient.c -o FTPClient -lnsl -lm Step 1: ./FTPClient Use: ./FTPClient -p <FTP server port> -P <data transfer port> -h <ftp server address> ./FTPClient -p 21 -P 20005 -h venla.it.lut.fi ******************************************************************* Welcome to File Transfer Protocol (FTP Client) based on RFC 959 Write open,to open the connection. Give default Username and Password Client recognizes following commands- Commands are: get, put, ls, cd,cd.. ,open, close, quit, passive Wish you have nice, File transfer session !!! ******************************************************************* Step 2: open Connection ready 220- 220- ********************************************************************** 220- * * 220- * Anonymous ftp server for datacommunication practise works * 220- * * 220- ********************************************************************** 220 venla.it.lut.fi FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.17) ready. Give user name: Step 3: Give user name: anonymous ---> USER anonymous 331 Guest login ok, send your complete e-mail address as password. Give password: anonymous ---> PASS anonymous 230 Guest login ok, access restrictions apply. Step 4: ls ---> TYPE A 200 Type set to A. ---> PORT 157,24,55,222,78,37 200 PORT command successful. ---> LIST 150 Opening ASCII mode data connection for '/bin/ls'. Data connection created total 24 -rw-r--r-- 1 0 0 75 Jan 21 12:19 .message d--x--x--x 2 0 0 4096 Jan 21 09:44 bin dr-x--x--x 2 0 0 4096 Jan 21 12:52 etc dr-x--x--x 2 0 0 4096 Jan 21 12:53 lib dr-xr-xr-x 3 0 0 4096 Jan 21 12:48 pub drwxrwxr-x 2 0 1001 4096 Feb 14 13:08 upload 226 Transfer complete. Step 5: cd upload ---> CWD upload 250- File upload area for anonymous users 250- 250 CWD command successful. get 97.wmv.mp4 ---> TYPE I 200 Type set to I. ---> PORT 157,24,55,222,78,39 200 PORT command successful. ---> RETR 97.wmv.mp4 150 Opening BINARY mode data connection for '97.wmv.mp4' (188034898 bytes). Data connection created 226 Transfer complete. Step 6: put 12345 ---> TYPE I 200 Type set to I. ---> PORT 157,24,55,222,78,42 200 PORT command successful. ---> STOR 12345 150 Opening BINARY mode data connection for '12345'. Data connection created Transfer speed: 9197783.203336 Time taken: 0.046283 226 Transfer complete. Step 7: passive Entering passive mode get 111 ---> PASV 227 Entering Passive Mode (157,24,53,46,166,194) ---> TYPE I 200 Type set to I. ---> RETR 111 Passive data connection opened 150 Opening BINARY mode data connection for '111' (2 bytes). Data connection created 226 Transfer complete. Step 8: put 123456 ---> PASV 227 Entering Passive Mode (157,24,53,46,190,141) ---> TYPE I 200 Type set to I. ---> STOR 123456 150 Opening BINARY mode data connection for '123456'. Transfer speed: 23791482.702733 Time taken: 0.017893 226 Transfer complete. Step 9: cd.. ---> CDUP 250- root folder of anonymous ftp server for datacommunications practise works 250- 250 CWD command successful. Step 10: close ---> QUIT 221 Goodbye. Step 11: quit preeti:~/network programming/ass7> -----------------------------------------------------------------------------------------------------------------------------------------------------------
About
FTP Client based on RFC 959
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published