新增一个简单的好友列表页面

This commit is contained in:
李寻欢
2023-11-30 11:37:02 +08:00
parent 6626f45af2
commit 6a259b0552
17 changed files with 523 additions and 40 deletions

31
tcpserver/handle.go Normal file
View File

@@ -0,0 +1,31 @@
package tcpserver
import (
"bytes"
"go-wechat/handler"
"io"
"log"
"net"
)
// process
// @description: 处理连接
// @param conn
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)
}
}

28
tcpserver/server.go Normal file
View File

@@ -0,0 +1,28 @@
package tcpserver
import (
"log"
"net"
)
// Start
// @description: 启动服务
func Start() {
// 建立 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)
}
}