Created
January 19, 2023 13:14
-
-
Save sonu27/24ac497d16f6b6b882b053959b3ad0de to your computer and use it in GitHub Desktop.
Golang http server, very basic
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment