package myserver import ( "log" "net" ) func Start() { log.Printf("server started on http://localhost:%s", "8081") l, err := net.Listen("tcp", ":8081") if err != nil { log.Fatal(err) } for { conn, err := l.Accept() if err != nil { log.Fatal(err) } //conn.SetReadDeadline(time.Now().Add(2 * time.Second)) go handleConnection(conn) } } func handleConnection(conn net.Conn) { defer func(conn net.Conn) { err := conn.Close() if err != nil { log.Println(err) } }(conn) log.Println("handleConnection") //should buffer the request, not doing that here buf := make([]byte, 2000) n, err := conn.Read(buf) if err != nil { log.Println(err) return } log.Println(string(buf[:n])) str := "HTTP/1.1 200 OK\r\n" + "Content-Type: text/plain; charset=utf-8\r\n" + "Content-Length: 11\r\n" + "\r\n" + "Hello World" conn.Write([]byte(str)) }