Killer FTP Server for Android
|There are a handful of FTP daemons on the Android market but SwiFTP is special. I’ll get to that part in the next paragraph. Reasons to run an FTP server on your phone when on your local network with wifi include that if you want to grab or dump files onto your chip you don’t need to plug in the USB line (giving you the option to charge more heavily with the AC adapter line while you do your transferring), your computer doesn’t need to mount the chip grabbing exclusive access until you unmount and, were you inclined, you could set up a nanny spy cam to make sure your kids are in good hands when you’re at the opera. Most importantly, it just feels badass to run a server on your phone.
But because of the way the world works, phones, when just using cellular, can’t accept incoming connections so if you’re not on wifi (and if you want to access it from outside the network you gotta set up port forwarding), no soup for you. That means no running around the beach taking pictures of fine babes while your buddy grabs them from your phone while you hunt for the booty in real time. Enter SwiFTP. In addition to all the regular FTPD stuff you can do with any old server, its developer Dave Revell rigged up his own proxy server so that your babe-hungry buddy can access the phone over a cellular connection without doing any fancy tricks or creating some kind of Dropbox account with their clutterware needing to be installed on the computer accessing the phone remotely. Basically I think what happens is the phone makes and keeps a connection to his proxy server, the computer accesses a URL pointing at the proxy server, the proxy server lets the computer download or upload files first to or from the proxy server … ahh whatever it works.
Another feature of the software is that it’s free. So it’s free all right; however if you use the proxy thing, that means you’re using this guy’s bandwidth and contrary to popular belief bandwidth isn’t free. So especially if you do that instead of just using it with your wifi, and really especially if you do that a lot, but even if you’re not going to do that but you want to be cool anyway, I encourage you to throw him a few bucks. It’s available on the market, just search for swiftp. If the proxy serving thing fascinates you, you can get his proxy thing over SVN and screw around with it. Yes it’s open source. By the way, on Dave’s to-consider-doing list is cooking up an Android web server.
Doug Simmons
I am going to look into this… when I get my Android phone *cries*
tihs doesn’t apply to me (yet) so i didn’t bother reading past the first paragraph. but i always do enjoy your picture selections
well hey, thanks for that. I tend to put about as much effort into the picture selections and and shopping (though no shopping in this instance) as I do the articles themselves, glad to hear somebody noticed.
hi Doug
Everywhere i read that one must connect trough proxy or WiFi to connect to SwiFTP.
I tried that and it worked grate.
Can you explain why i could not connect directly to the phones IP address?
what is the downside? Server-client from Phone-to-Phone?
(your picture is funny hahaha)
HTC Desire android 2.2
/erik
In short, his running a proxy server (he also hands out the code he made to make your own proxy server), the middleman, enables two devices with Internet access connect to each other without either needing to accept an incoming connection, escaping all the restrictions one gets when behind a NAT, firewall and so on.
The phone companies don’t assign publicly-visible IP addresses to phones like you might have were you to bypass your router and plug your computer into your modem. Instead they have some funky NAT routing, phones somehow sharing IPs with others, very dynamic IPs, probably all sorts of filtering, so in that situation anything with such a connection to the Internet can only initiate a connection with something outside of their big local network, but not receive a connection.
You can connect with wifi because the phone’s on your local network, there’s no such filtering, no firewall, just your phone running a server on it and your computer connecting to it. They can see and access each other, nothing in the way.
Using this software, you can also connect to your phone outside of your local network wherever the phone is as long as it has a data connection of any kind (namely cellular in this case) because when you turn SwiFTP on, instead of passively waiting for a connection, it connects to the developer’s server which he tuned up to act as a broker, an intermediary of sorts, and remains connected and reporting to you the FTP URL to connect to the phone, you bang that into your computer and then your computer connects to the guy’s server, the proxy server. Your computer sends that server a command to list the contents of a directory, the proxy server in turn sends that command to the phone which is already connected, the phone spits back the results to the proxy server and the proxy server forwards that back home to the computer. Same procedure for all FTP behavior.
Make sense?
thanks for your deep explanation.
Thought one could develop an app that would talk phone-to-phone since they have ip addresses. I understand the concept of Proxy.
Dave Revell must have done something special since I cant connect to the my phone directly but hi can.
A follow up question is how can Dave Revell proxy server talk to my phone when i enter that
special ftp://adress@c1.swiftp.org.
If he can then one must be able to develop an app that can do this,, i was thinking in my (head of nothing is impossible thought of challenges).
/ Cheers
Erik
I know i can study his code and im doing that in eclipse.
He can connect directly because your phone, when you hit Start, already initiated an outgoing connection into his server which it keeps alive. So his server ends up receiving incoming connections from both your phone and the computer, then bridges the two together, but does not reach out to anyone to initiate a connection. The proxy server’s foots are in both doors already.