tags:

views:

26

answers:

1

I'm using the c# wrapper sharpBITS as a means to download files via HTTP. However, I was wondering whether it would be possible enumerate the current downloading BITS transactions from the web server, rather than the client.

+1  A: 

The question is ambiguous, but I think the answer is "no". BITS is a client-side component and each local user account has its own set of jobs. The most you can find out (running on the client) is the files the locally-installed BITS service is downloading on behalf of the current user.

Finding out the list of files that the server is delivering (to one specific client, or all clients simultaneously) would depend on both the web (or FTP) server software (Apache, IIS, lighttpd, etc.) and the OS (Linux, Windows, Mac OS X Server, etc.).

Remotely enumerating them (e.g., on the server, listing a particular client's downloads; or, on the client, listing files being transferred by a particular server) would in most cases require a custom protocol to transmit the information from server to client (or vice versa). In some cases, the software may already have a remote management API that could be used; again, this would depend very heavily on the specific server environment.

If the question were clarified, it might be easier to answer. For example, suppose client C1 is downloading files A, B, and C from servers S1, S2, and S3 (respectively); meanwhile server S1 is serving files A, D, and E to clients C1, C2, and C3 (respectively). Do you wish to get the list of files being downloaded by C1, or served by S1? And do you want to have this information obtained by code running on C1 or S1?

Bradley Grainger