Unix sockets come to Windows

Support for the unix socket has existed both in BSD and Linux for the longest time, but, not on Windows. On Windows, there were some alternatives for local IPC, such as named pipes. But, calling conventions are different between the named pipes and sockets, making writing low-maintenance cross-platform applications difficult. For example, one such place where these two constructs differ (other than the API) is terminating the connection. BSD Socket API provides a bidirectional close semantics using ‘shutdown’. There is no direct equivalent of that in named pipes. Such differences make it difficult to port unix socket applications from Linux to Windows and vice versa; up until now!

Build 17063 brings native support for the unix socket to Windows. Starting this build, two Win32 processes can use the AF_UNIX address family over Winsock API (which is very similar to the BSD socket API) to communicate with each other. Currently, the support only exists for the stream (SOCK_STREAM) socket type, which is a connection-oriented protocol for one-to-one communication. Support for the datagram (SOCK_DGRAM) can be considered in future depending on the adoption, feedback and scenarios.

Another step to make Windows friendlier to UNIX/Linux users and developers.

14 Comments

  1. 2017-12-20 8:59 pm
    • 2017-12-20 10:26 pm
    • 2017-12-21 12:08 pm
    • 2017-12-21 11:23 pm
      • 2017-12-22 1:20 pm
        • 2017-12-23 8:34 am
          • 2017-12-23 11:26 am
  2. 2017-12-21 11:14 am
    • 2017-12-21 4:58 pm
  3. 2017-12-21 1:53 pm
  4. 2017-12-22 5:46 pm
    • 2017-12-22 6:04 pm
      • 2017-12-24 2:28 am
  5. 2017-12-25 7:40 am