title: Why did Microsoft implement sockets differently?
body: <p>I'm currently in the middle of a project involving sockets, and I just use Linux's sys/socket.h file. Cue the port to Microsoft, and realizing that Winsock is different. I guess I have two questions.</p>
  
  <p>First, what're the main differences between the two implementations? Is there an easy way to "translate" them? A link to a guide would be greatly appreciated, because you guys can probably get me better quality links than Google.</p>
  
  <p>Second, why did Microsoft do this? What was their motivation? Why didn't they just keep the same implementation as everyone else?</p>