socket_windows.go 590 B

12345678910111213141516171819202122
  1. // +build windows
  2. package server
  3. import (
  4. "errors"
  5. "net"
  6. "strings"
  7. "github.com/Microsoft/go-winio"
  8. )
  9. func createLocalListener(address string) (net.Listener, error) {
  10. if !strings.HasPrefix(address, "npipe://") {
  11. return nil, errors.New("Cannot parse address, must start with npipe:// or tcp:// : " + address)
  12. }
  13. return winio.ListenPipe(strings.TrimPrefix(address, "npipe://"), &winio.PipeConfig{
  14. MessageMode: true, // Use message mode so that CloseWrite() is supported
  15. InputBufferSize: 65536, // Use 64KB buffers to improve performance
  16. OutputBufferSize: 65536,
  17. })
  18. }