(a) client server or multithreaded client-server, where server will create pool of worker threads (say 5) to provide services to pool of clients (say 5 ).Server should be behaving as a concurrent server. Now send request (say send a request string hello) from clients. Server should respond with string Hi, responding with Thread1, Thread2 and so forth, which is the response from server thread1, thread2, etc that you have created already.
(b) Implement a framework for multithreaded client-server, where a server (consider 2 servers) has to work as a client first followed by as server. Consider there are two clients (say C1,C2), where C1 and C2 will send the request to access a file (say file.txt) that C1 wants to have the first 10 lines in the file and C2 wants to have next 10 lines from the file. Server1 has to implement worker threads for C1 and C2, such that it will receive the request from C1 and C2 and post the read request to Server2 that actually accesses the file and send the result for C1 and C2. You may need to synchronize the access to the file by some means. Try to realize the condition.
(c) Implement a multithreaded server that can be used as a proxy server to access some designated file (say it reflects the proxy copy of two file1.txt, file2.txt). Now use a client to send as request to the server and try to access the files from proxy copy.