in reply to Re^13: Is there a problem with IPC::Open on Windows 7?
in thread Is there a problem with IPC::Open on Windows 7?
Further, the WinSock2 docs make no mention of AF_UNIX.
And my attempt to use it compiles clean, but results in a runtime error (as expected):
#include <winsock2.h> #include <ws2tcpip.h> #include <stdio.h> int main( int argc, char **argv ) { WSADATA wsaData = {0}; int iResult = 0; SOCKET sock = INVALID_SOCKET; if( WSAStartup(MAKEWORD(2, 2), &wsaData) != 0 ) { printf( "WSAStartup failed: %d\n", iResult); return 1; } sock = socket( AF_UNIX, SOCK_DGRAM, IPPROTO_TCP ); if( sock == INVALID_SOCKET ) printf( "socket function failed with error = %d\n", WSAGetLast +Error() ); else { printf( "socket function succeeded\n" ); iResult = closesocket( sock ); if( iResult == SOCKET_ERROR ) { printf( "closesocket failed with error = %d\n", WSAGetLast +Error() ); WSACleanup(); return 1; } } WSACleanup(); return 0; }
Compile/link/run/error:
C:\test>cl /W3 unixDomainSockets.c Ws2_32.lib Microsoft (R) C/C++ Optimizing Compiler Version 15.00.21022.08 for x64 Copyright (C) Microsoft Corporation. All rights reserved. unixDomainSockets.c Microsoft (R) Incremental Linker Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. /out:unixDomainSockets.exe unixDomainSockets.obj Ws2_32.lib C:\test>unixDomainSockets.exe socket function failed with error = 10047 C:\test>perl -E"say $^E=10047" An address incompatible with the requested protocol was used
So, quite how you are getting away with using *nix domain sockets on Windows I have no idea; but I think that it is more by luck than judgement and probably not doing what you think it is.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^15: Is there a problem with IPC::Open on Windows 7?
by glasswalk3r (Friar) on Aug 16, 2013 at 15:07 UTC | |
by BrowserUk (Patriarch) on Aug 16, 2013 at 15:26 UTC |