How to communicate between Delphi Windows Desktop Application and Delphi Windows Service Application

I have already posted how to prepare a Windows Service Application in Delphi in my blog. And this time I am adding how to communicate between a Delphi Windows Desktop Application and Delphi Windows Service Application. For this I have used IndyTCP Server/Client components to communicate with a Server that deployed as a Windows Service. A little description about Indy TCP Server/Client Components. In this blog I have referenced only Indy TCP Server(TIdTCPServer) and Client(TIdTCPClient) components. Indy works in a way to have the client (TidTCPClient) connect to the server (TidTCPServer) and then exchange data between them, back-and-forth until the connection is terminated either willfully or by premature disconnect. For in detail explanation I have prepared a Server application which can be deployed as Windows Service and a desktop Client application. Desktop application can connect will server application and send request. Then server application can read a client's r...