Skip to content

x/sys/windows: named pipes support on Windows #16655

Open
@mei-rune

Description

@mei-rune
  1. What version of Go are you using (go version)?
    go version go1.7rc3 windows/amd64
  2. What operating system and processor architecture are you using (go env)?
    set GOARCH=amd64
    set GOBIN=
    set GOEXE=.exe
    set GOHOSTARCH=amd64
    set GOHOSTOS=windows
    set GOOS=windows
    set GOPATH=d:\developing\go\xxx..\3td;d:\developing\go\meijing
    set GORACE=
    set GOROOT=d:\tools\go_amd64
    set GOTOOLDIR=d:\tools\go_amd64\pkg\tool\windows_amd64
    set CC=gcc
    set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\xxx\go-build491836642=/tmp/go-build -gno-record-gcc-switches
    set CXX=g++
    set CGO_ENABLED=1

On *nix we have unix sockets - a standard way of doing IPC (interprocess communication).
On windows we can use TCP sockets for doing the IPC, but a natural way of doing so according to this page (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx) is named pipes. Very close analogy to unix sockets. Providing net.NamedPipeConn in the net package sounds like a good idea to me. I need run web app on the pipe.

I find this issues #3599, but is closed. It provide a alternative package “gopkg.in/natefinch/npipe.v2”。 but it is unstable and low performance. All thread will blocked at syscall.WaitForSingleObject while Use PipeListener on the server.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Triage Backlog

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions