\   
\  -
( ***  Windows NT *** )

WINAPI: CreateNamedPipeA    KERNEL32.DLL
WINAPI: ConnectNamedPipe    KERNEL32.DLL
WINAPI: DisconnectNamedPipe KERNEL32.DLL

00000000 CONSTANT PIPE_WAIT
00000002 CONSTANT PIPE_READMODE_MESSAGE
00000004 CONSTANT PIPE_TYPE_MESSAGE
00000003 CONSTANT PIPE_ACCESS_DUPLEX

: CREATE-SERVER-PIPE ( c-addr u fam -- fileid ior )
  >R
  DROP >R
  0                  \ secur
  60000              \ timeout=1min
  100000             \ in buffer size
  100000             \ out buffer size
  1                  \ max instances
  PIPE_TYPE_MESSAGE
  PIPE_READMODE_MESSAGE OR
  PIPE_WAIT OR       \ pipe mode
  R> R> SWAP         \ open mode & name
  CreateNamedPipeA DUP . GetLastError . CR
  DUP INVALID_HANDLE_VALUE =
  IF GetLastError ELSE 0 THEN
;
: SERVER
    S" \\.\pipe\test" PIPE_ACCESS_DUPLEX
    CREATE-SERVER-PIPE
    THROW >R
  BEGIN
    0 R@ ConnectNamedPipe
    IF ." " CR
       R> INCLUDE-FILE TRUE ."  "
    ELSE ." No connection" FALSE THEN
    CR
  UNTIL
;
SERVER