FTP is a particularly annoying protocol, and I'd suggest you avoid it - it will complicate things significantly.

As you probably gather, if you've read the specs, FTP uses two sockets at once - one for control messages, the other for data. Worse still, the data connection is not always initiated by the client. Even worse still, the client sometimes sends its IP address to the server over the control connection.

All of these things make it highly error prone to program, and incompatible with many modern network (i.e. NAT) - you really don't want to code it if at all possible