title: Named pipes or TCP for client/server communication
body: <p>My application supports multiple instances of the same server process (Windows Service), just like f.e. SQL Server.</p>
  
  <p>The client/server communication will only take place in the same network.</p>
  
  <p>I can use TCP, but then I have to configure separate IP ports for every server instance. I can however simply use named pipes so I don't have to think about port numbers and simply use the name of the server instance.</p>
  
  <p>There will not be very frequent and/or large data client/server communication. It's some sort of a ERP application that will only communicate once per 30 seconds on average.</p>
  
  <p>Also I want to prevent any client/server communication outside the network (intranet).</p>
  
  <p>What is the wise choice here?</p>
  
  <p>Update: Both client and server are written using .NET 4 and no third party client will be able to use the server.</p>