I am working on an FTP client for kicks and I am trying to understand the workflow of data connections.
As I understand, the initial (command
) connection is permanent until you quit. However, I am unsure of the data connection - is it re-initiated per-command? So you call PORT ...
or PASV
, get a second connection, do a LIST
, get the results, connection closes, start over?
Also, do you need to call PASV
(or PORT ...
) again after each connection closes? It seems that when I try to test some things out using a passive connection, I cannot re-connect to the same port after the first command has returned the results and closed the data connection. I can keep calling PASV
-> Data Connect -> Run Command -> Get Results -> Data Connection closed -> PASV
, but it seems like it's not how it's meant to run?
Also, if someone has a good material on FTP that is more terse than the RFC I really appreciate it.