package main import ( "fmt" "net" "time" ) func main() { addr := &net.UnixAddr{Net: "unix", Name: "./test.socket"} listener, err := net.ListenUnix("unix", addr) if err != nil { fmt.Printf(err.Error()) return } go func() { for { conn, err := listener.AcceptUnix() if err != nil { fmt.Printf("rpc socket accept error: %s", err) continue } buf := make([]byte, 1024*1024*1024) for true { n, err := conn.Read(buf) if err != nil { fmt.Printf("recieved error: %v\n", err) } fmt.Printf("read %d bytes\n", n) } conn.Close() } }() addr, err = net.ResolveUnixAddr("unix", "./test.socket") if err != nil { fmt.Printf("resolv Error: %v\n", err) return } conn, err := net.DialUnix("unix", nil, addr) if err != nil { fmt.Printf("dial Error: %v\n", err) return } buf := make([]byte, 1024*1024*1024) wrote, _, err := conn.WriteMsgUnix(buf, nil, nil) fmt.Printf("Result from WriteMsgUnix, bytes written: %d, error: %v\n", wrote, err) // Wait for recieves to happen time.Sleep(3 * time.Second) }