You have misunderstood how sockets and/or client/server architecture works.
A Client can Send and Receive streams from a server.
A Server can Send and Receive multiple streams from multiple Clients.
There are other problems i see with this immediately that make this not worth doing:
How does each "Server" sync its contents with the others?
How do clients that are connected to different servers interact?
What is your actual reasoning for requiring multiple "servers"?
case 2 :Application 3(client mode) send request to application 2(server mode) and
application 2(now client mode) process the request and send this request to
application 1(server mode) then application 1 process the request and send response to
the application 2 and application 2 process this response and send to the
application 3.
What you have just described is a single Server/Client relationship.
Client 1 Sends new information to Server.
Server Stores Information.
Client 2 Asks Server for updated information.
Server Hands Out Information.
Client 2 Updates Information on Server.
Server Stores Information.
Client 1 Asks Server for updated information.
Server Hands out Information.
etc, etc.
Edit: On a side note, To do what you're actually requesting will require ALOT more code than that, Actually thinking about it is quite painful.