Am Mittwoch, den 19.02.2014, 09:43 +0100 schrieb Johannes Kanig: > Hello, > > I wonder if unix domain sockets are supposed to be supported on > Windows? Here is a session with the ocaml toplevel (4.01.0) on my > Windows machine: > > # #load "unix.cma";; > # Unix.socket Unix.PF_UNIX Unix.SOCK_STREAM 0;; > Exception: Unix.Unix_error (Unix.EUNKNOWNERR 0, "socket", ""). > > Is that expected? Replacing PF_UNIX with PF_INET works. There are no Unix-domain sockets on Windows. If you need local sockets, there are two possibilities: 1) Use Internet sockets on the loopback device (127.0.0.1) 2) Use named pipes, which work in a similar way as sockets, but have a quite different API (btw, "named pipes" on Windows are fundamentally different to "named pipes" on Unix). There are bindings for these in Ocamlnet (Netsys_win32 module, http://projects.camlcity.org/projects/dl/ocamlnet-3.7.3/doc/html-main/Netsys_win32.html). In any case, I'd recommend you read some background knowledge about the possibilities of the OS, because there are some hidden traps. Gerd > On a related note, the "error message" provided by the unix module is > a bit funny: > > # Unix.handle_unix_error (Unix.socket Unix.PF_UNIX Unix.SOCK_STREAM) 0;; > C:\OCaml\bin\ocaml.exe: "socket" failed: The operation completed successfully. > > Thanks in advance, > > Johannes > -- > Johannes Kanig > -- ------------------------------------------------------------ Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de My OCaml site: http://www.camlcity.org Contact details: http://www.camlcity.org/contact.html Company homepage: http://www.gerd-stolpmann.de ------------------------------------------------------------