For every connection you should use Close and Dispose sequence, as in the example below:
using(Ftp ftp = new Ftp())
{
ftp.ConnectSSL("ftp.server.com"); // or ConnectSSL for SSL
ftp.Login("user", "password");
ftp.ChangeFolder("uploads");
ftp.Upload("report.txt", @"c:\report.txt");
ftp.Close();
}
As documentation states: Close sends QUIT command and releases all resources acquired by this object.
You can't use Ftp instance after Close is called.
To establish a new connection you need to create a new Ftp class instance.