First of all, chekc sun's tutorial on sockets. You will use sockets to implement this.

Second, You will write a simple protocol for this. It is not difficult to write, it is difficult to debug :). Check sun's protocol as an example. For your case, i guess the best way is to implement the protocol as follows:

Each thread will request different parts of your file from different sources. Starting byte and ending byte are enough to characterize that info.

1. Send start byte to the server
2. Send end byte to the server
3. Download this part to a buffer
4. Do above steps until no parts are remaining
5. Combine downloaded buffers as the final file