Interprocess communication for Windows in C# (.NET 2.0)

IPC in .Net can be achieved using:

WCF

using named pipes requires .Net 3.0 and above.

Code example


Remoting

The original IPC framework released with .Net 1.0. I believe remoting is no longer being actively developed, and you are encouraged to use WCF instead

Code example

Inter-process communication via Remoting – uses a tcp channel

Resources


Win32 RPC using csharptest-net RpcLibrary

I came across a project recently that has wrapped the Win32 RPC library and created a .net class library that can be used for local and remote RPC

Project home page: http://csharptest.net/projects/rpclibrary/

MSDN references:

Also has a google protocol buffers rpc client that runs on top of the library: https://code.google.com/p/protobuf-csharp-rpc/


WM_COPYDATA

For completeness it’s also possible to use the WIN32 method with the WM_COPYDATA message. I’ve used this method before in .Net 1.1 to create a single instance application opening multiple files from windows explorer.

Resources

Sockets

Using a custom protocol (harder)

Leave a Comment