Menu

Multi threaded download ?

Thotheolh
2008-05-19
2013-04-24
  • Thotheolh

    Thotheolh - 2008-05-19

    I was wondering if TCPFile allows multi-threaded download per request like many other download managers ? I think it would be useful to have that feature but to prevent misuse, if one user decides to do a multi-threaded download request, the person owning the file should be informed and with consent, to proceed. There might be some configuration too to throttle and limit the amount of threads per request or speed limit and maybe even specify how many people can perform the multi threaded request at one time.

     
    • Stivo

      Stivo - 2008-05-19

      The protocol is currently laid out to transfer one file chunk (512kb) at a time. Big chunks increase the delay upon priority changes, but they do allow for nice speeds.
      It does queue the outgoing files so it can reach in the LAN with no encryption up to 4-5mb/s on a big file.
      There is a speed limit, per user and global, but it is never used in the LAN mode.

      What would be the use case for multi threaded transfers? Would you want to create an additional connection?

      I thought about handling a lot of little files differently, they would not be using the p2p protocol but just be sent directly. But I have not implemented that yet.

       
    • Thotheolh

      Thotheolh - 2008-05-24

      I would propose the multi threaded download because if I were to send a 100MB file to my friend and their connection for a single thread is low , I think it would take a long time for them to receive it, thus refusing to try out tcpfile.

      Another reason is I would like to transfer files between computers in my home network and what if the files are too big for my devices to transport or my devices are busy doing some I/O in another computer and the files are big ?

      Although these might seem too trivail to propose for a change , but I thought maybe it might be useful to have these features in case it might be needed.

       
    • Stivo

      Stivo - 2008-05-24

      I still dont see it :)

      If you send a 100mb file to your friend, how does that hinder you to try out tcpfile? You can chat while transferring, you can start another file transfer and give it higher priority, you can throttle the used bandwidth...
      Nothing is blocked when transferring a big file.

      About doing I/O: It does cache 512kbyte chunks, so it does access the device only once per 512kb...

      The source code is currently just not laid out for this. But it would not require a lot of modification, I think.

      By the way, if you want to reuse some code from tcpfile for your projects I would recommend the Settings Manager. It is one of the newest parts and quite independent from the rest.

       
    • Thotheolh

      Thotheolh - 2008-05-28

      Thanks for the tip on using the Settings Manager.

      Just a suggestion, maybe TCPFile could allow some sort of group using so users can join public groups and for private groups , they must have the exact name of the group to enter and maybe for higher security, some tokens if needed.

      I think I am alone on the tcpfile since I have no idea who to add... lol... and if there's a group, maybe it would just remove some loneliness for some users ?

       
    • Stivo

      Stivo - 2008-05-28

      Well you could add me for example: Stivo

      A group system basically exists. You can set up a php Advertiser, which is very easy to do. Then you can tell your friends the address of the server, and they add it to their program.

      PHP Advertiser Usage:
      1) Set up a php advertiser for your friends.
      2) Tell them the address of it
      3) They add the address on a line in Settings tab: Connection => Advertiser => PHP Advertiser Address. Also check the box Use PHP Server. (The jsp server can still be used)

      Once every friend has done this, the following happens:
      1) Every x minutes (configurable) every friend connects to the Server and leaves his IP, Public Key, port etc.
      2) In the same request he receives a list of all people that connected to the server in the last half hour. He adds it to his Buddy List. The program will check that the public key has not been changed since the last time you have seen him (it will tell you if it did)

      It does not work fully in 0.3.3b (the php advertiser has not been used for a long while), but I fixed it in SVN. Will be working in the next release.

       
    • Manveru

      Manveru - 2008-05-28

      I think I see your point. A possibility to use TCPFile like a non private p2p program would be nice. I guess we have to think about some possibilities, maybe there is a good solution to combine both a private and trusted friend network with a wider p2p network that allows connections to unknown people. Which of course would benefit of maximum anonymousness. But I guess this will be tricky...

       
    • Thotheolh

      Thotheolh - 2008-05-30

      I think the PHP think is just too complicated. I don't know much about how it works.

      For the current TCPFile , I think it's not bad. Is it possible to create a kind of Java installer for TCPFile like using the IzPack Java installer so that when you install it , it puts all the details and stuff away and places the files in the default or selected directory and all the user faces is just a symbolic link on the Desktop ?

       
    • Stivo

      Stivo - 2008-05-31

      @PHP Advertiser: There has to be a central way to exchange IPs. But this special use case that you described has not been considered so far, but the PHP advertiser is kind of a workaround for this. I will put up a detailed description for this after the next release.

      @Izpack Installer: That is indeed possible.

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.