Package inproc implements an in-process connection.
- In-process connection.
- Compatible with the net.Conn and the net.Listener interface.
go get github.com/hslam/inproc
import "github.com/hslam/inproc"
package main
import (
"fmt""github.com/hslam/inproc""net"
)
funcmain() {
address:=":8080"l, err:=inproc.Listen(address)
iferr!=nil {
panic(err)
}
deferl.Close()
gofunc() {
for {
conn, err:=l.Accept()
iferr!=nil {
return
}
gofunc(conn net.Conn) {
buf:=make([]byte, 1024)
for {
n, err:=conn.Read(buf)
iferr!=nil {
break
}
conn.Write(buf[:n])
}
conn.Close()
}(conn)
}
}()
conn, err:=inproc.Dial(address)
iferr!=nil {
panic(err)
}
msg:="Hello World"if_, err:=conn.Write([]byte(msg)); err!=nil {
panic(err)
}
buf:=make([]byte, 1024)
n, err:=conn.Read(buf)
iferr!=nil {
panic(err)
}
fmt.Println(string(buf[:n]))
conn.Close()
}Hello World
This package is licensed under a MIT license (Copyright (c) 2021 Meng Huang)
inproc was written by Meng Huang.