Tuesday, November 23, 2010

BeShare in Haiku : How to share files within a LAN

I already posted about BeShare and how I could not use it for filesharing between two computers on my home network.
I had also posted to Haiku forums on this point but after three days I still have not received a reply. This is always a sure sign that the solution is not well known.
So, I contacted the developer of BeShare (Jeremy Freisner) who very kindly explained an awful lot about his app and lead me eventually to resolving this issue.
Essentially, you cannot share files from one computer (running haiku) to another (also running Haiku) on the same network because the server to which the BeShare clients on each computer is attached (beshare.neonplasma.com) sees each client as having the same external IP address.
Indeed, he pointed out to me how you can check the IPs of all the clients hooked up to whatever server via BeShare by first compiling the Muscled server (download muscle from here, cd to ..../muscle/server and make) and then

i) cd to ..../muscle/test
ii) make portablereflectclient
iii) ./portablereflectclient beshare.neonplasma.com
iv) g beshare


At this point you should see a list of the clients with their IP addresses.
However, how does this help get BeShare to allow filesharing within a LAN? Well, it's down to having the muscled server run within the same LAN.
To run the server is simply a matter of using these commands

cd ..../muscle/server
muscled

Now connect BOTH computers (and both must be running Haiku) to the internal IP address of the computer running muscled. In my case this was 192.168.1.16.
Note that there is no need to add the 2960 port number to the server address.
What I found odd was that even the computer whose address is 192.168.1.16 must be connected through BeShare to the same address rather than to muscled (as server).
Jeremy suggested this was perhaps due to the computer running muscled and connected to muscled advertsied itself as having an IP address of 127.0.0.1 which would mean that the other BeShare client would send chat messages and shared files to "its" 127.0.0.1 or, in other words, itself.
As a workaround he suggested running muscled as
./muscled localhost=192.168.1.16

Unfortunately, this did not work for me. While the "new" muscled command did indeed work but connecting to muscled on the computer running muscled and then to 192.168.1.16 on the other BeShare client did not allow eithert file transfer or chat. Actually, even the availability of the shared files or the User Name of the other client did not show up.
This suggests that the problem is other than was thought.

No comments:

Post a Comment