1 Star 1 Fork 0

湖底观景/GolangTraining

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.go 1.06 KB
一键复制 编辑 原始数据 按行查看 历史
GoesToEleven 提交于 2016-04-21 08:45 +08:00 . changes dir structure
package main
import (
"bufio"
"fmt"
"io"
"log"
"net"
"strings"
)
func handleConn(conn net.Conn) {
defer conn.Close()
scanner := bufio.NewScanner(conn)
i := 0
for scanner.Scan() {
ln := scanner.Text()
fmt.Println(ln)
if i == 0 {
method := strings.Fields(ln)[0]
fmt.Println("METHOD", method)
} else {
// in headers now
// when line is empty, header is done
if ln == "" {
break
}
}
i++
}
// response
body := `
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form method="POST">
<input type="text" name="key" value="">
<input type="submit">
</form>
</body>
</html>
`
io.WriteString(conn, "HTTP/1.1 200 OK\r\n")
fmt.Fprintf(conn, "Content-Length: %d\r\n", len(body))
io.WriteString(conn, "\r\n")
io.WriteString(conn, body)
}
func main() {
server, err := net.Listen("tcp", ":9000")
if err != nil {
log.Fatalln(err.Error())
}
defer server.Close()
for {
conn, err := server.Accept()
if err != nil {
log.Fatalln(err.Error())
}
go handleConn(conn)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhangjianGood/GolangTraining.git
git@gitee.com:zhangjianGood/GolangTraining.git
zhangjianGood
GolangTraining
GolangTraining
afa19f5c43f3

搜索帮助