I seen one in Java that monitored network activity with a JNI wrapper for a bittorent client. It would involve looking up and querying your network interfaces which would be different most certainly from platform to platform, and writing one that way.
However that implementation is only good for one client. The thing with BITS is that it's a single process queuing service, so if multiple clients want to use it, they can all get a fraction of the idle bandwidth to pool together. However, the idea is totally possible and I would love to see an implementation written. It would take a few native hooks for each platform and some skill to make a shared daemon that all the client processes queue up with over some type of IPC. Not a difficult concept at all, just nobody has done it yet :-) Some things to think about: * error control (what if the bandwidth picks up again, do you drop the connection? how do you let the client lib handle that?) * should be like a socket proxy or just purely handle http? (are you going to proxy any type of socket for the client, or are you going to support purely an http implementation? both have trade offs and considerations.. things like FTP and HTTP can be restarted mid stream with some servers so you can pick up where you left off. You could even go the route of writing a transaction like wrapper and handling only request queue messages) * security (pretty simple if done correctly, but you don't want to make it an open proxy like the first BITS version basically was in Windows 2000) Hope that helps (and maybe inspires) :-) Zac Bowling http://www.zacbowling.com/ On Wed, 2006-05-03 at 11:28 +0200, Ympostor wrote: > Does anyone know if it could be possible to write a multi-platform > implementation of the "Background Intelligent Transfer Service" (BITS) > [1] technology so as to use it with a full managed API inside our Mono > applications? > > The coolest thing I see from this technology is the use of idle > bandwidth exclusively for downloading packets. > > Regards > _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
