mirror of
https://github.com/e1732a364fed/v2ray_simple.git
synced 2025-10-06 17:27:05 +08:00

现在整个程序均通过了go test, main 也可以正常运行了。 Relay_UDP 函数添加流量计数; 发现之前 Relay函数的流量计数 在main.go里参数传反了,导致实际上计数的是上传而不是下载,已修复 对fullcone的情况做了特别考量。MsgConn的 Close函数在fullcone时不能随便被调用。 因此我添加了一个 CloseConnWithRaddr(raddr Addr) error 方法,以及 Fullcone() bool 方法 在utils包的init部分使用 rand 随机种子
28 lines
423 B
Go
28 lines
423 B
Go
package trojan
|
|
|
|
import (
|
|
"net"
|
|
|
|
"github.com/hahahrfool/v2ray_simple/netLayer"
|
|
)
|
|
|
|
type UDPConn struct {
|
|
net.Conn
|
|
}
|
|
|
|
func (u UDPConn) Fullcone() bool {
|
|
return true
|
|
}
|
|
func (u UDPConn) CloseConnWithRaddr(raddr netLayer.Addr) error {
|
|
return u.Close()
|
|
}
|
|
func (u UDPConn) ReadFrom() ([]byte, netLayer.Addr, error) {
|
|
|
|
return nil, netLayer.Addr{}, nil
|
|
}
|
|
|
|
func (u UDPConn) WriteTo([]byte, netLayer.Addr) error {
|
|
|
|
return nil
|
|
}
|