I have an application written in .NET 3.5 that uses FTP to upload/download files from a server. The app works fine but there are performance issues:
It take
I did some benchmarks on FtpWebRequest, similar to @Sid 's response above. Setting KeepAlive to true does improve, but not the asynchronous calls in my test. The test consists of
1) FtpWebRequest for check of file existence 2) FtpWebRequest for upload 3) FtpWebRequest for rename file on server
Test FTP client 30 files of size 5 Kbytes took ... 14.897 seconds
Test upload (alive true, connection name) 30 files of size 5 Kbytes took ... 34.229 seconds
Test async(alive true, connection name) 30 files of size 5 Kbytes took ... 40.659 seconds
Test send thread (alive true, connection name) 30 files of size 5 Kbytes took ... 38.926 seconds, 30 files
what did improve was an implementation of an FTP client made using the Socket class
the benchmark is here
https://github.com/pedro-vicente/ftp_t