Search code examples
socketsipcnamed-pipesterminal-servicesdde

Which Interprocess Communication methods work on a Terminal Server?


In a terminal server session, some standard IPC technologies might not work like in a single user environment, because the required resources are not virtualized.

For example, TCP/IP ports are not virtualized, so applications in different sessions which try to listen on the same port will cause a port conflict.

Which IPC technology will work in a terminal server environment where applications running in the same user session need to interact?

  • Messages (WM_COPYDATA)?
  • Named Pipes?
  • DDE?
  • Memory Mapped Files?

Solution

  • Messages will work fine. DDE will too, since it is based on messages. Named pipes will not, since they are per-system and not per-session. You might also consider COM or OLE.