Computer Science and Engineering Fair Project
A C# .NET FTP Application similar to a professional C++ FTP application

Projects by Grade Level
1st 2nd 3rd 4th 5th 6th
7th 8th 9th 10th 11th 12th
Home Advanced Award Winning Warning!
Project Information
Title: Create a full functional Ftp Application in C# .NET, which contains most of the features found in most professional C++ Ftp applications.
Subject: Computer Science & Engineering
Grade level: Middle School - Grades 7-9
Academic Level: Ordinary
Project Type: Building Project
Cost: Medium
Awards: 2nd place, Canada Wide Virtual Science Fair (2010)
Affiliation: Canada Wide Virtual Science Fair (VSF)
Year: 2010
Description: Softwares used for developing the C# .NET FTP application were: 1.Microsoft Visual Studio 2008 Professional Edition 2.Microsoft Expression Web 2.0 3.FileZilla 4.FTP client library for .NET 2.0 5.Enhanced BrowseForFolder styled TreeView.


File Transfer Protocol (FTP)

File Transfer Protocol (FTP) is a standard network protocol used to copy a file from one host to another over a TCP/IP-based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server. FTP users may authenticate themselves using a clear-text sign-in protocol but can connect anonymously if the server is configured to allow it.

The first FTP client applications were interactive command-line tools, implementing standard commands and syntax. Graphical user interface clients have since been developed for many of the popular desktop operating systems in use today.

The original specification for the File Transfer Protocol was written by Abhay Bhushan and published as RFC 114 on 16 April 1971 and later replaced by RFC 765 (June 1980) and RFC 959 (October 1985), the current specification. Several proposed standards amend RFC 959, for example RFC 2228 (June 1997) proposes security extensions and RFC 2428 (September 1998) adds support for IPv6 and defines a new type of passive mode.

A client makes a TCP connection to the server's port 21. This connection, called the control connection, remains open for the duration of the session, with a second connection, called the data connection, opened by the server from its port 20 to a client port (specified in the negotiation dialog) as required to transfer file data. The control connection is used for session administration (i.e., commands, identification, passwords) exchanged between the client and server using a telnet-like protocol. For example "RETR filename" would transfer the specified file from the server to the client. Due to this two-port structure, FTP is considered an out-of-band, as opposed to an in-band protocol such as HTTP.

The server responds on the control connection with three digit status codes in ASCII with an optional text message, for example "200" (or "200 OK.") means that the last command was successful. The numbers represent the code number and the optional text represent explanations (i.e., ) or needed parameters (i.e., ). A file transfer in progress over the data connection can be aborted using an interrupt message sent over the control connection.

FTP was not designed to be a secure protocol—especially by today's standards—and has many security weaknesses.

FTP was not designed to encrypt its traffic; all transmissions are in clear text, and user names, passwords, commands and data can be easily read by anyone able to perform packet capture (sniffing) on the network. This problem is common to many Internet Protocol specifications (such as SMTP, Telnet, POP and IMAP) designed prior to the creation of encryption mechanisms such as TLS or SSL. A common solution to this problem is use of the "secure", TLS-protected versions of the insecure protocols (e.g. FTPS for FTP, TelnetS for Telnet, etc.) or selection of a different, more secure protocol that can handle the job, such as the SFTP/SCP tools included with most implementations of the Secure Shell protocol.

Anonymous FTP is a host that provides an FTP service may additionally provide anonymous FTP access. Users typically log into the service with an 'anonymous' account when prompted for user name. Although users are commonly asked to send their email address in lieu of a password, no verification is actually performed on the supplied data; examples of anonymous FTP servers can be found here.

See also: File Transfer Protocol

Source: Wikipedia (All text is available under the terms of the Creative Commons Attribution-ShareAlike License)

Useful Links
Science Fair Projects Resources
Citation Guides, Style Manuals, Reference
General Safety Resources
Electrical Safety FAQ
Computer Science Fair Projects

Computer Science Award Winning Projects

Computer Science Experiments


Projects Home
Primary School
Elementary School
Middle School
High School
Easy Projects
Award Winning
Popular Ideas
Branches of Science

Science Fair Project Guide
Science Fair Project Types
The Scientific Method - How to Experiment
The Display Board
Topics, Ideas, Sample Projects

Repeat Famous Experiments and Inventions
Science Jokes Science Trivia
Scientists & Inventors

Read for Free
The Science Fair
A Juvenile Science Adventure Novel
by Julian T. Rubin

Human Abridged Wikipedia Articles

My Dog Kelly

Follow Us On:

Privacy Policy - Site Map - About Us - Letters to the Editor

Comments and inquiries:

Last updated: January 2018
Copyright © 2003-2018 Julian Rubin