package npipe

import "github.com/microsoft/go-mssqldb/internal/gopkg.in/natefinch/npipe.v2"

Package npipe provides a pure Go wrapper around Windows named pipes.

!! Note, this package is Windows-only. There is no code to compile on linux.

Windows named pipe documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365780

Note that the code lives at https://github.com/natefinch/npipe (v2 branch) but should be imported as gopkg.in/natefinch/npipe.v2 (the package name is still npipe).

npipe provides an interface based on stdlib's net package, with Dial, Listen, and Accept functions, as well as associated implementations of net.Conn and net.Listener. It supports rpc over the connection.

Notes

* Deadlines for reading/writing to the connection are only functional in Windows Vista/Server 2008 and above, due to limitations with the Windows API.

* The pipes support byte mode only (no support for message mode)

Examples

The Dial function connects a client to a named pipe:

conn, err := npipe.Dial(`\\.\pipe\mypipename`)
if err != nil {
	<handle error>
}
fmt.Fprintf(conn, "Hi server!\n")
msg, err := bufio.NewReader(conn).ReadString('\n')
...

The Listen function creates servers:

ln, err := npipe.Listen(`\\.\pipe\mypipename`)
if err != nil {
	// handle error
}
for {
	conn, err := ln.Accept()
	if err != nil {
		// handle error
		continue
	}
	go handleConnection(conn)
}

Index

Source Files

doc.go

Version
v1.5.0
Published
Jul 25, 2023
Platform
darwin/amd64
Last checked
5 hours ago

Tools for package owners.