Multithreaded Client-Server Applications:
Server will handle multiple clients request based on "Watch Folder" on server.
1. Whenever folder is added/updated /removed with some file, server will right away commuincate to all associated clients, so that clients can download all files. It might the case that some file may in-use at the time client download on client side, if it fails, try again after some interval.
There may be many drop folders on server and each drop folder will be associated with multiple clients. One client will be associated to only one drop folder.
2. Whenever clients come online, server will send current file list for associated drop folder to that client, and client will check if some file is new or updated, download that file.
In general all client-server related issues should be addressed. And client/server exe must have project name with "WSSF". e.g. WSSFServer,WSSFClient.
1. Client must have all the time the same files that are in associated folder on server. If some file is removed from server folder, all associated clients will also remove that file.
2. Both Client and server application will be an exe files that can be launched from shell command.
3. Client will have server IP-DNS/PORT from registry, Each Client will have unique constant ID from registry. There will be folderID (folder name in integers) in registry for clients.
4. Server resgistry will have path of main folder from registry, where such sub fodler will be a "Drop Folder"(folderID as GroupID on clients)
5. Both Client and server applications must be in threading, so that all the time a new method can be added in parallel working. Both will not stcuk the whole system. Both will run as process in task manager.
6. Clients and server may restart any time, or can go off for any time, whenever server is online again or any client is online again, it should communicate and make sure that files on both sides (GroupID folder that is drop folder on server and client folder on client) are same.
7. Client will have folder name in registry where files will be downloaded.
8. Both code should be in small, easy to understand methods, classes and interfaces. It should be easy to modify later on.
9. Must be well tested before finalizing
5 freelancers are bidding on average $670 for this job
Dear, I am more than expert in .NET client/server app development. I have developed many many client/server apps that are multithreaded , servers handling large number of clients etc...