增加NewRangeDial函数,更方便使用

This commit is contained in:
injoyai
2025-03-18 14:47:15 +08:00
parent 9df96f0707
commit 51d8d06fbd

23
dial.go
View File

@@ -3,6 +3,7 @@ package tdx
import ( import (
"context" "context"
"github.com/injoyai/ios" "github.com/injoyai/ios"
"github.com/injoyai/logs"
"math/rand" "math/rand"
"net" "net"
"strings" "strings"
@@ -43,3 +44,25 @@ func NewRandomDial(hosts []string) ios.DialFunc {
return c, addr, err return c, addr, err
} }
} }
func NewRangeDial(hosts []string) ios.DialFunc {
if len(hosts) == 0 {
hosts = Hosts
}
return func(ctx context.Context) (c ios.ReadWriteCloser, _ string, err error) {
for i, addr := range hosts {
if !strings.Contains(addr, ":") {
addr += ":7709"
}
c, err = net.Dial("tcp", addr)
if err == nil {
return c, addr, nil
}
if i < len(hosts)-1 {
//最后一个错误返回出去
logs.Err(err)
}
}
return
}
}