🎉 first commit
This commit is contained in:
55
main.go
Normal file
55
main.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"go-wechat/client"
|
||||
"go-wechat/handler"
|
||||
"go-wechat/tasks"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
)
|
||||
|
||||
func init() {
|
||||
client.InitMySQLClient()
|
||||
tasks.InitTasks()
|
||||
}
|
||||
|
||||
func process(conn net.Conn) {
|
||||
// 处理完关闭连接
|
||||
defer func() {
|
||||
log.Printf("处理完成: -> %s", conn.RemoteAddr())
|
||||
_ = conn.Close()
|
||||
}()
|
||||
|
||||
var buf bytes.Buffer
|
||||
if _, err := io.Copy(&buf, conn); err != nil {
|
||||
log.Printf("[%s]返回数据失败,错误信息: %v", conn.RemoteAddr(), err)
|
||||
}
|
||||
log.Printf("[%s]数据长度: %d", conn.RemoteAddr(), buf.Len())
|
||||
go handler.Parse(conn.RemoteAddr(), buf.Bytes())
|
||||
// 将接受到的数据返回给客户端
|
||||
if _, err := conn.Write([]byte("200 OK")); err != nil {
|
||||
log.Printf("[%s]返回数据失败,错误信息: %v", conn.RemoteAddr(), err)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
// 建立 tcp 服务
|
||||
listen, err := net.Listen("tcp", "0.0.0.0:19099")
|
||||
if err != nil {
|
||||
log.Printf("listen failed, err:%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
for {
|
||||
// 等待客户端建立连接
|
||||
conn, err := listen.Accept()
|
||||
if err != nil {
|
||||
log.Printf("accept failed, err:%v", err)
|
||||
continue
|
||||
}
|
||||
// 启动一个单独的 goroutine 去处理连接
|
||||
go process(conn)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user