修订udp代码; dial配置 添加 fullcone 选项;默认为非fullcone

现在整个程序均通过了go test, main 也可以正常运行了。

Relay_UDP 函数添加流量计数;

发现之前 Relay函数的流量计数 在main.go里参数传反了,导致实际上计数的是上传而不是下载,已修复

对fullcone的情况做了特别考量。MsgConn的 Close函数在fullcone时不能随便被调用。

因此我添加了一个 CloseConnWithRaddr(raddr Addr) error  方法,以及 Fullcone() bool     方法

在utils包的init部分使用 rand 随机种子
This commit is contained in:
hahahrfool
2022-04-08 20:31:59 +08:00
parent 447bd8749a
commit ce735dbb99
17 changed files with 871 additions and 566 deletions

View File

@@ -4,11 +4,19 @@ package utils
import (
"errors"
"flag"
"math/rand"
"strings"
"time"
"github.com/BurntSushi/toml"
)
func init() {
//保证我们随机种子每次都不一样, 这样可以保证go test中使用随机端口时, 不同的test会使用不同的端口, 防止端口冲突
// 因为我们所有的包应该都引用了 utils包, 所以可以保证这一点.
rand.Seed(time.Now().Unix())
}
func IsFlagPassed(name string) bool {
found := false
flag.Visit(func(f *flag.Flag) {