title: How to do private comms between private apps over network?
body: <p>It's basically one app that is installed on multiple PC's, each install maintaining it's own database which is sync'd with other's as &amp; when they are up (connected to the same network) at the same time.</p>
  
  <p>I've tested this using simple socket connections and custom buffers, but want to make the comms between the apps conform to accepted standards and also to be secure/robust, and not try to re-invent the wheel.</p>
  
  <p>What is the normal/standard way of doing this app-to-app comms &amp; where do I find out more?</p>
  
  <p>Also, what techniques are/can be used to announce and find the other apps on a network?</p>
  
  <hr>
  
  <p>edit:
  (refining my problem)</p>
  
  <p>The pub/sub model pointed to by gimel below seems to be along the lines of what I need. It however covers a lot of ground &amp; I don't really know what to take away &amp; use from all that.</p>
  
  <p>It also looks like I need to establish a P2P connection once two or more apps found each other - how do I do that? </p>
  
  <p>If there are examples/tutorials available, please point them out. Small open source projects/modules that implements something like what I need would also serve.</p>
  
  <p>My platform of choice is Linux, but Windows-based examples would also be very usable.</p>
  
  <hr>
  
  <p>edit [09-01-06]:</p>
  
  <p>I am currently looking at the following options:</p>
  
  <ol>
  <li><a href="http://tldp.org/HOWTO/Multicast-HOWTO.html" rel="nofollow noreferrer">multicasting</a> (TLDP-Howto) - this seems workable, but I need to study it some more. </li>
  <li>using free dynamic DNS servers, although this seems a bit dicey... </li>
  <li>using some free email facility, e.g. gmail/yahoo/..., and send/read mail from there to find other app's IP's (can work, but feels dirty) </li>
  <li>webservices has been suggested, but I don't know how they work &amp; will have to study it up</li>
  </ol>
  
  <p>I would appreciate your opinion on these options and if there are any examples out there. I unfortunately do NOT have the option of using a central server or website (unless it can be guaranteed to be free and permanent).</p>
  
  <p>[Edit 2009-02-19]</p>
  
  <p>(Wish I could accept two/three answers! The one I've accepted because it provides lines of thought and possibilities, while others came with fixed, but applicable, solutions. Thanks to all who answered, all of it helps.)</p>
  
  <p>As &amp; when I find/implement my solution, I will update this question, and should the solution  be adequate I'll create a sourceforge project for it. (It is in any case a small problem within a far larger project.)</p>