FTP : Java Glossary

The CurrCon Java Applet displays prices on this web page converted with today’s exchange rates into your local international currency, e.g. Euros, US dollars, Canadian dollars, British Pounds, Indian Rupees… CurrCon requires an up-to-date browser and Java version 1.8, preferably 1.8.0_131. If you can’t see the prices in your local currency, Troubleshoot. Use Firefox for best results.

FTP (File Transfer Protocol). A protocol built on top of TCP/IP (Transmission Control Protocol/Internet Protocol) that lets you send or receive a file over the Internet. The url for a file has this form: ftp://username:password@hostname/pub/mydir. FTP works better than HTTP (Hypertext Transfer Protocol) because it can pick up where it left off if the connection is broken. HTTP in theory has this feature as well, but it is more frequently implemented in FTP. If you simply want to download or copy a file, you can use HTTP which is faster and simpler.


There are more FTP packages than you can shake a stick at. Here are a few. To find even more, search Google for FTP upload automation These usually preposterously overpriced. They are typically not smart enough to keep track of what they have already uploaded to avoid re-uploading or having to download directory information. They are not clever enough to bundle the upload into a compressed archive. They are not smart enough to retry files that are busy being downloaded. They are not smart enough to do atomic uploads (the uploads are not visible until all have been uploaded). We need a much more efficient, reliable way to upload files to websites.

[Java FTP] or [Java secure FTP].

FTP is a bit long in the tooth. It is being replaced by VPN where you just copy files via an encrypted link to the server as if it were another drive on your desktop.

AutoMate starts at $1500.00 USD They refuse to tell you the price until you have evaluated the product.

Ports, PASV and Firewalls

FTP is an odd protocol in that a session requires two TCP/IP socket connections. It starts out with a control channel then later adds a data channel. In an Active connection, it works like this:

  1. The client connects using a random port number on the client to port 21 on the server to create the control connection.
  2. The client sends a port command over the control channel containing a random free port to use for the data connection.
  3. The server connects back to the client to socket number given in the port command via port 20 on the server.

This third step is fire-wall unfriendly. Firewalls don’t trust servers out on the net connecting in. They want all connections to be created by the client. So FTP was modified to make it more firewall-friendly, with PASV connections. In that case, the client sets up both connections. The only catch is not all servers and clients support it. In that case,you have to tell the firewall the incoming connection is ok.

If your software is written in Java and you are running it from a jar, the firewall considers the generic java.exe to be the agent trying to trying to tunnel through the firewall. On my machine there are ten different java.exes. Make sure you tell the firewall which one you are using to run your program. I found it easier to compile my app with Jet so that I had a unique *.exe for the firewall to recognise.

Future FTP

FTP is long in the tooth, so it will likely be completely replaced rather than patchwork upgraded. Here are some things that will need to be fixed.

AceFTPFreeware: GUIGUI only
Apache Commons FTP
Apache Jakarta FTPClient: library
atomic FTP upload student project
CoreFTP: free
Cyberduck FTP: for Mac
Enterprise DT edtFTPj discussion forums
Enterprise DT edtFTPj: Fast FTP library for Java, straightforward, well documented, free and $600 version
Explanation of FTP ports for active and passive transfers
Fetch FTP: for Mac
File Catalyst: FTP replacement
FileTransfer classes
FileZilla: FTP/FTPS server client for Windows
Fresh FTPfree, bare bones. Downloads remote directories each session
FTP server by Peter Sorotokin
FTP Voyager: FTP and secure FTP standalone utility
j-ftp: FTP library
J2SSH Maverick: Secure FTP for Java
Jakarata FTP upload library
JFTP: secure FTP for Java
JScape Secure FTP for Java
NCD Classic FTP: $30
Pure-FTPd: secure server
remote file access
Review of Java FTP libraries
RFC 959 describes FTP, File Transfer Protocol
Robocopy: FTP replacement, Windows only
ScriptFTP: script driven for unattended FTP file transfers, $40
Secure FTP Server: for Java
send big files
TFTP: trivial FTP
Websiteceo FTP: GUI only
Why FTP is obsolete
Windows command line FTP
WinSCP: scriptable

This page is posted
on the web at:


Optional Replicator mirror
of mindprod.com
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number