package main import "fmt" import "net" import "bufio" func handleConnection(c net.Conn) () { fmt.Println("new connection") var client *bufio.ReadWriter; { client_r := bufio.NewReaderSize(c,14) client_w := bufio.NewWriterSize(c,14) client = bufio.NewReadWriter(client_r,client_w) } for { wasPrefix:=false var line string for isPrefix:=true;isPrefix; { var lineBuf []byte var err error lineBuf,isPrefix,err = client.ReadLine() if err != nil { fmt.Printf("Readline Error: %s\n",err.Error()) c.Close() return } if isPrefix { wasPrefix=true } else { line=string(lineBuf) } } if wasPrefix { fmt.Println("line too long") fmt.Fprintf(client,"line too long\n") client.Flush() continue } fmt.Printf("Received: %v\n", string(line)) // // data := buf[0:nr] // fmt.Printf("Received: %v", string(data)) // _, err = c.Write(data) // if err != nil { // fmt.Println("Write: " + err.Error()) // return // } } } func main() { ln, err := net.Listen("unix", "/tmp/test.sock") if err != nil { fmt.Printf("Error: %s\n",err.Error()) return } fmt.Printf("Listener started\n") for { conn, err := ln.Accept() if err != nil { // handle error continue } go handleConnection(conn) } }