File Transfer Protocol (FTP) is not so much for sharing as it is for sending * receiveing files. The whole file gets sent.
WSFTP (my favorite) or CuteFTP seem to be pretty popular for GUI-based. FTP is also available from the command line of a DOS window (some flavors of Windows require you to specify loading it - the "Simple TCP/IP" "Basic TCP/IP" something like that), or is (usually) a native command in the UNIX/Linux enviroments.
The most common mistake with FTP is not setting the files mode (ASCII or binary). If you download a binary file without first setting the mode (to binary), the usual result is a corrupt file. MOST of the time, you can upload/download everything in binary mode (ASCII stays ASCII, bins stay as bins), the exception would be if you are downloading something from a mainframe (for example) that uses a different character format for text. If you download that file as a bin, it's gonna stay in its native format (NOT ASCII).
When you upload/download a file as "text," FTP filters it through a layer that converts it to the proper character code format.
Most of the GUI FTP programs have an "automatic" mode that will determine the file content and set the mode accordingly.
In command line mode, a typical session looks like this:
C:\> FTP ftp.netscape.com
(Welcome Message and logon information)
USER: "anonymous"
(response that says anonymous users are OK (or not))
PASSWORD: "your email address"
(response with usually some navigational information)
"cd /pub/navigator/i386/version4.7" (or whatever directory the stuff is in - cd is Change Directory)
(response from system that the directory is changed)
"bin" (sets the file mode to binary - all eight bits of the byte are sent)
"get netscape47.zip" (tells the system to send this file to you)
(optional "get netscape47.zip ns47.zip" (putting the second file name in renames it on your system)
(the system won't look like it's doing anything while the file transfers, if you enter the "HASH" command before the "get," you'll see a stream of pound symbols "#" across the screen)
(when the file's done, the prompt will return)
The gracefull way to exit is the command "bye"
If you were sending the file, the command is "put" (i.e., "put music.mp3" (if you put in a second file name, that's what the file will be saved as on the other machine). You still have to use the mode command ("bin" or "ascii"

).
If you need to pass FTP through a firewall by specifying port numbers, you must open both port 20 and 21 (TCP).
That's it, in a nutshell. I hope it's helpful in getting you started.
Good Luck
Scott