修复连接超时问题

This commit is contained in:
2025-03-06 14:35:21 +08:00
parent 9d8bdaec7e
commit 2a50237af2
4 changed files with 38 additions and 56 deletions

View File

@@ -56,6 +56,8 @@ func control() error {
}
defer utils.Close(conn)
reader := bufio.NewReader(conn)
// 请求转发端口
slog.Info("注册转发端口", "port", cfg.FwdPort)
portBuf := make([]byte, 2)
@@ -67,10 +69,8 @@ func control() error {
// 等待用户连接
// 读写失败后退出重连,防止后续数据读写顺序错位导致卡死控制通道
slog.Info("等待用户连接")
for {
slog.Info("等待用户连接")
reader := bufio.NewReader(conn)
tagLen, err := utils.ReadByte(reader)
if err != nil {
return errors.Wrap(err, "接收 tagLen 失败")
@@ -81,8 +81,8 @@ func control() error {
}
// 建立数据通道
slog.Info("收到用户连接,建立数据通道", "tag", string(tagBuf))
go func() {
slog.Info("收到用户连接,建立数据通道")
err := data(tagLen, tagBuf)
if err != nil {
slog.Error("建立数据通道失败", err)
@@ -139,9 +139,9 @@ func data(tagLen byte, tagBuf []byte) error {
errCh <- err
return
} else {
slog.Info("上行流量代理结束")
slog.Debug("上行流量代理结束")
}
slog.Info("上行流量", "bytes", written)
slog.Debug("上行流量", "bytes", written)
errCh <- nil
}()
go func() {
@@ -151,14 +151,14 @@ func data(tagLen byte, tagBuf []byte) error {
errCh <- err
return
} else {
slog.Info("下行流量代理结束")
slog.Debug("下行流量代理结束")
}
slog.Info("下行流量", "bytes", written)
slog.Debug("下行流量", "bytes", written)
errCh <- nil
}()
<-errCh
slog.Info("代理流量结束", "time", time.Since(timer))
slog.Info("数据通道结束", "time", time.Since(timerAll))
slog.Debug("代理流量结束", "time", time.Since(timer))
slog.Debug("数据通道结束", "time", time.Since(timerAll))
return nil
}
@@ -207,5 +207,5 @@ func initEnv() {
}
func initLog() {
slog.SetLogLoggerLevel(slog.LevelDebug)
slog.SetLogLoggerLevel(slog.LevelInfo)
}