Basically I want a system similar to emule, basically people can share files by folder or file path (or by indexing their drives for certain file types). The client then maintains a list of the files and an identity number for that file.
The clients when connected will first try their last good servers lists (people they connected to last time) and then a master server with hopefully an up to date list. If that fails it should port scan the entire network for clients (its only about 5000 machines connected at most all with static IP addresses). If it recieves a response from another client both should share their list of linked nodes (to ensure that the network is as stable as possible), and then upload a copy of their shared files (and files that can be seen by that machine) as a searchable list (probably implment a database here) by filename or by code number. Then its a case of trying to acquire the files which would hopefully be done by parts (an offset into the file?) to ensure that downloads are spread over multiple machines.
it is primarily the file transfer section that I need help with as I can find examples of simple chat servers and suchlike however nothing seems to cover sending parts of files and recombining them into a single usable file. If possible I would like to include a feature to stop people freeloading so that the system is balanced and that people must share in order to be shared with.
Hope that is slightly better.
|