title: Understanding struct sockaddr
body: <pre><code>struct sockaddr {
      unsigned short sa_family;   // address family, AF_xxx
      char           sa_data[14]; // 14 bytes of protocol address
  };
  </code></pre>
  
  <p>In this structure what exactly is the meaning <strong>address family</strong> depicted by <code>sa_family</code>?</p>
  
  <p>Does it mean that protocols like TCP/UDP have "addresses"? Well, the protocols can be identification numbers not addresses, I think.</p>
  
  <p>Anyway, if yes, then on what basis have their families been divided?</p>