title: UDP multicast using winsock API differences between XP and Vista
body: <p>It seems to be that the implementation required to set up a UDP multicast socket has changed between windows XP and windows vista. Specifically:</p>
  
  <ul>
  <li><p>Under windows XP, you <em>must</em> call <code>bind()</code> before you can reference any multicast-specific socket options.</p></li>
  <li><p>However, under windows vista, you <em>must not</em> call <code>bind()</code> when dealing with multicast sockets.</p></li>
  </ul>
  
  <p>Failing either of these two points results in a socket error at runtime.</p>
  
  <p>Am I going crazy, or have other people seen this as well? Is there a better solution than conditional compilation of the bind() call?</p>