A java application (as simple as possible) with a client and a server using socket programming.
The client must have a gui.
The server must be multithreaded.
The client connects to the server and uploads a file.
The client connects to the server and gets a list of available files for download. Selects a file and downloads it.
The client has the option to connect to the server through an anonymization proxy and upload the file.
The connection between the anonymization proxy and the server should be under TLS/SSL.
(OPTIONAL) The client can be an anonymization proxy itself. There could be a check box at the clients gui which when is checked means that the client can act as an anonymization proxy. The server keeps a list of all clients which can act as anonymization proxies and using a random function selects and uses two from the available proxies. This part is optional.
4 freelancers are bidding on average €27 for this job
3 years experience with java and worked a couple of times with client server applications. gui will not be a problem to get built based on the requirements