13.09.2012
by Esa Turtiainen
tags: Android Bittorrent

I rarely need p2p files. However, I am very curious to follow how the system develops.

I wanted to try this scenario: I control the bittorrent server with my Android telephone. The server is running in my Linux cloud server. When the server has downloaded the file, I can download it to my telephone. So, there is no extra bandwidth used in my telephone.

I almost managed to implement this.

The implementation is challenging. There is µTorrent server for Linux that is in alpha stage and pretty confusing. There is API documentation but not really instructions or not even clear explanation, what the package does.

And, you really will want an explanation what it is — it is not so straightforward.

The package contains executable file utserver, file webui.zip and some documents.

If you only want to run µTorrent server, you do not need webui.zip at all. You create file utserver.conf based on instructions in docs folder and run the standalone executable binary file utserver (less than 1 MB, nice that someone still knows how to do small programs).

Normally, you do not want to do that.

If you just run the file ./utserver, it starts the server, finds the file webui.zip and respons to the URL:

http://localhost:8080/gui/

There you can set all the parameteres that you would like to set in utserver.conf using nice web user interface. Note that you do not need to open the zip file!

Then you need the client. I first tried µTorrent official Android remote client. I did not manage to figure how to use it with µTorrent server! I will explain later why. Instead, I managed to get it working using Android program Torrent-Fu. There you simply configure the address of your server, port, user name and password. All these you can configure using the utserver GUI.

Now you can use Torrent-Fu to initialize torrent downloads.

And what was the problem with the official Android application µTorrent Remote? Normally people want to control remote Windows computer that is behind NAT, network address translation. You can not contact that computer from the Internet directly. In that case µTorrrent provides system, where the computer announces it’s (configured) name to µTorrent company and µTorrent helps the remote to access the local computer. As far as I can see, the µTorrent server does not support this system and the Android application only supports this system.

I may be wrong…

As an alternative, you can run some full Android p2p application like tTorrent directly in your telephone. There are obvious reasons not to do that: most likely your contract forbids it and it wastes your bandwidth and battery. But it is possible.

Actually, I have more memory, disk space and computing power in my telephone than in my cloud Linux server ($19.90/month).

And still that one thing… Neither Torrent-Fu nor the GUI of the server allow download of the file. They assume that you log in to the server using some other system to actually get the file! Unfortunately, in my case this makes the system useless. There is 1 GB of extra space in the cloud server. I have much more free space in my telephone. I should move everything immediately to my telephone to be able to use this. I think that the utserver API does not support download at all, so it is not useful to try to find a client that supports it.

PS. if you give some parameters using the GUI so that you do not manage to get GUI back, just delete all other files except utserver, docs/ and webui.zip.

PPS. normally you want to run "./utserver -daemon". If you want to kill the daemon, you have to find the process number. You might even consider -logfile log.txt