1 Star 1 Fork 0

陈光超/go-tcp-http

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.go 1.07 KB
一键复制 编辑 原始数据 按行查看 历史
超组织 提交于 2022-12-07 12:36 . 完善文档,支持指定监听端口
package main
import (
"flag"
"log"
"net"
)
func main() {
port := flag.String("p", "9090", "端口")
// 解析命令行参数写入注册的flag里
flag.Parse()
server, err := net.Listen("tcp", "0.0.0.0:"+*port)
if err != nil {
panic(err)
}
log.Printf("Listen: %s\n", server.Addr())
defer server.Close()
for {
conn, err := server.Accept()
if err != nil {
continue
}
go handleConn(conn)
}
}
func handleConn(conn net.Conn) {
defer conn.Close()
log.Printf("客户端地址:%s\n", conn.RemoteAddr().String())
msg := readConn01(conn)
log.Println("读取tcp结束")
writeConn(conn, msg)
log.Println("响应tcp结束")
}
func writeConn(conn net.Conn, msg string) {
conn.Write([]byte("HTTP/1.1 200 OK\r\n"))
conn.Write([]byte("Content-Type:text/plain:charset=UTF-8\r\n\r\n"))
conn.Write([]byte(msg))
}
func readConn01(conn net.Conn) string {
var request = make([]byte, 1000)
len, err := conn.Read(request)
if err != nil {
log.Println("failed to read request contents")
return ""
}
msgStr := string(request[:len])
log.Printf("%v", msgStr)
return msgStr
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/bzsometest/go-tcp-http.git
git@gitee.com:bzsometest/go-tcp-http.git
bzsometest
go-tcp-http
go-tcp-http
master

搜索帮助