WCF is a very common tool for this. On the same machine, you can configure it to use named pipes as a transport mechanism, which is very fast and quite small.
Depending on the messages, you can make one or both programs a WCF server, and then add the client link to another program for communication.
source share