✨ 新增一个简单的好友列表页面
This commit is contained in:
31
tcpserver/handle.go
Normal file
31
tcpserver/handle.go
Normal 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
28
tcpserver/server.go
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user