proxy

package
v0.0.0-...-c9cf022 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2022 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MAX_INDEX = 1024
)
View Source
const (
	MAX_PROTO_PACK_SIZE = 100
)

Variables

View Source
var CLIENT_TYPE_name = map[int32]string{
	0: "PROXY",
	1: "REVERSE_PROXY",
	2: "SOCKS5",
	3: "REVERSE_SOCKS5",
	4: "SS_PROXY",
}
View Source
var CLIENT_TYPE_value = map[string]int32{
	"PROXY":          0,
	"REVERSE_PROXY":  1,
	"SOCKS5":         2,
	"REVERSE_SOCKS5": 3,
	"SS_PROXY":       4,
}
View Source
var FRAME_TYPE_name = map[int32]string{
	0: "LOGIN",
	1: "LOGINRSP",
	2: "DATA",
	3: "PING",
	4: "PONG",
	5: "OPEN",
	6: "OPENRSP",
	7: "CLOSE",
}
View Source
var FRAME_TYPE_value = map[string]int32{
	"LOGIN":    0,
	"LOGINRSP": 1,
	"DATA":     2,
	"PING":     3,
	"PONG":     4,
	"OPEN":     5,
	"OPENRSP":  6,
	"CLOSE":    7,
}
View Source
var PROXY_PROTO_name = map[int32]string{
	0: "TCP",
	1: "UDP",
	2: "RUDP",
	3: "RICMP",
	4: "KCP",
}
View Source
var PROXY_PROTO_value = map[string]int32{
	"TCP":   0,
	"UDP":   1,
	"RUDP":  2,
	"RICMP": 3,
	"KCP":   4,
}

Functions

func MarshalSrpFrame

func MarshalSrpFrame(f *ProxyFrame, compress int, encrpyt string) ([]byte, error)

Types

type CLIENT_TYPE

type CLIENT_TYPE int32
const (
	// client fromaddr -> server toaddr
	CLIENT_TYPE_PROXY CLIENT_TYPE = 0
	// server fromaddr -> client toaddr
	CLIENT_TYPE_REVERSE_PROXY CLIENT_TYPE = 1
	// client fromaddr -> server
	CLIENT_TYPE_SOCKS5 CLIENT_TYPE = 2
	// server fromaddr -> client
	CLIENT_TYPE_REVERSE_SOCKS5 CLIENT_TYPE = 3
	// client fromaddr -> server shadowsocks address [SS_LOCAL_HOST:SS_LOCAL_PORT]
	CLIENT_TYPE_SS_PROXY CLIENT_TYPE = 4
)

func (CLIENT_TYPE) EnumDescriptor

func (CLIENT_TYPE) EnumDescriptor() ([]byte, []int)

func (CLIENT_TYPE) String

func (x CLIENT_TYPE) String() string

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(config *Config, serverproto string, server string, name string, clienttypestr string, proxyprotostr []string, fromaddr []string, toaddr []string) (*Client, error)

func (*Client) Close

func (c *Client) Close()

type ClientConn

type ClientConn struct {
	ProxyConn
	// contains filtered or unexported fields
}

type CloseFrame

type CloseFrame struct {
	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*CloseFrame) Descriptor

func (*CloseFrame) Descriptor() ([]byte, []int)

func (*CloseFrame) GetId

func (m *CloseFrame) GetId() string

func (*CloseFrame) ProtoMessage

func (*CloseFrame) ProtoMessage()

func (*CloseFrame) Reset

func (m *CloseFrame) Reset()

func (*CloseFrame) String

func (m *CloseFrame) String() string

func (*CloseFrame) XXX_DiscardUnknown

func (m *CloseFrame) XXX_DiscardUnknown()

func (*CloseFrame) XXX_Marshal

func (m *CloseFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CloseFrame) XXX_Merge

func (m *CloseFrame) XXX_Merge(src proto.Message)

func (*CloseFrame) XXX_Size

func (m *CloseFrame) XXX_Size() int

func (*CloseFrame) XXX_Unmarshal

func (m *CloseFrame) XXX_Unmarshal(b []byte) error

type Config

type Config struct {
	MaxMsgSize                int    // 消息最大长度
	MainBuffer                int    // 主通道buffer最大长度
	ConnBuffer                int    // 每个conn buffer最大长度
	EstablishedTimeout        int    // 主通道登录超时
	PingInter                 int    // 主通道ping间隔
	PingTimeoutInter          int    // 主通道ping超时间隔
	ConnTimeout               int    // 每个conn的不活跃超时时间
	ConnectTimeout            int    // 每个conn的连接超时
	Key                       string // 连接密码
	Encrypt                   string // 加密密钥
	Compress                  int    // 压缩设置
	ShowPing                  bool   // 是否显示ping
	Username                  string // 登录用户名
	Password                  string // 登录密码
	MaxClient                 int    // 最大客户端数目
	MaxSonny                  int    // 最大连接数目
	MainWriteChannelTimeoutMs int    // 主通道转发消息超时
	Congestion                string // 拥塞算法
}

func DefaultConfig

func DefaultConfig() *Config

type DataFrame

type DataFrame struct {
	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Compress             bool     `protobuf:"varint,2,opt,name=compress,proto3" json:"compress,omitempty"`
	Crc                  string   `protobuf:"bytes,3,opt,name=crc,proto3" json:"crc,omitempty"`
	Data                 []byte   `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
	Index                int32    `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*DataFrame) Descriptor

func (*DataFrame) Descriptor() ([]byte, []int)

func (*DataFrame) GetCompress

func (m *DataFrame) GetCompress() bool

func (*DataFrame) GetCrc

func (m *DataFrame) GetCrc() string

func (*DataFrame) GetData

func (m *DataFrame) GetData() []byte

func (*DataFrame) GetId

func (m *DataFrame) GetId() string

func (*DataFrame) GetIndex

func (m *DataFrame) GetIndex() int32

func (*DataFrame) ProtoMessage

func (*DataFrame) ProtoMessage()

func (*DataFrame) Reset

func (m *DataFrame) Reset()

func (*DataFrame) String

func (m *DataFrame) String() string

func (*DataFrame) XXX_DiscardUnknown

func (m *DataFrame) XXX_DiscardUnknown()

func (*DataFrame) XXX_Marshal

func (m *DataFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DataFrame) XXX_Merge

func (m *DataFrame) XXX_Merge(src proto.Message)

func (*DataFrame) XXX_Size

func (m *DataFrame) XXX_Size() int

func (*DataFrame) XXX_Unmarshal

func (m *DataFrame) XXX_Unmarshal(b []byte) error

type DeadLock

type DeadLock struct {
	// contains filtered or unexported fields
}

type FRAME_TYPE

type FRAME_TYPE int32
const (
	FRAME_TYPE_LOGIN    FRAME_TYPE = 0
	FRAME_TYPE_LOGINRSP FRAME_TYPE = 1
	FRAME_TYPE_DATA     FRAME_TYPE = 2
	FRAME_TYPE_PING     FRAME_TYPE = 3
	FRAME_TYPE_PONG     FRAME_TYPE = 4
	FRAME_TYPE_OPEN     FRAME_TYPE = 5
	FRAME_TYPE_OPENRSP  FRAME_TYPE = 6
	FRAME_TYPE_CLOSE    FRAME_TYPE = 7
)

func (FRAME_TYPE) EnumDescriptor

func (FRAME_TYPE) EnumDescriptor() ([]byte, []int)

func (FRAME_TYPE) String

func (x FRAME_TYPE) String() string

type Inputer

type Inputer struct {
	// contains filtered or unexported fields
}

func NewInputer

func NewInputer(wg *group.Group, proto string, addr string, clienttype CLIENT_TYPE, config *Config, father *ProxyConn, targetAddr string) (*Inputer, error)

func NewSocks5Inputer

func NewSocks5Inputer(wg *group.Group, proto string, addr string, clienttype CLIENT_TYPE, config *Config, father *ProxyConn) (*Inputer, error)

func (*Inputer) Close

func (i *Inputer) Close()

type LoginFrame

type LoginFrame struct {
	Proxyproto           PROXY_PROTO `protobuf:"varint,1,opt,name=proxyproto,proto3,enum=PROXY_PROTO" json:"proxyproto,omitempty"`
	Clienttype           CLIENT_TYPE `protobuf:"varint,2,opt,name=clienttype,proto3,enum=CLIENT_TYPE" json:"clienttype,omitempty"`
	Fromaddr             string      `protobuf:"bytes,3,opt,name=fromaddr,proto3" json:"fromaddr,omitempty"`
	Toaddr               string      `protobuf:"bytes,4,opt,name=toaddr,proto3" json:"toaddr,omitempty"`
	Name                 string      `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
	Key                  string      `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (*LoginFrame) Descriptor

func (*LoginFrame) Descriptor() ([]byte, []int)

func (*LoginFrame) GetClienttype

func (m *LoginFrame) GetClienttype() CLIENT_TYPE

func (*LoginFrame) GetFromaddr

func (m *LoginFrame) GetFromaddr() string

func (*LoginFrame) GetKey

func (m *LoginFrame) GetKey() string

func (*LoginFrame) GetName

func (m *LoginFrame) GetName() string

func (*LoginFrame) GetProxyproto

func (m *LoginFrame) GetProxyproto() PROXY_PROTO

func (*LoginFrame) GetToaddr

func (m *LoginFrame) GetToaddr() string

func (*LoginFrame) ProtoMessage

func (*LoginFrame) ProtoMessage()

func (*LoginFrame) Reset

func (m *LoginFrame) Reset()

func (*LoginFrame) String

func (m *LoginFrame) String() string

func (*LoginFrame) XXX_DiscardUnknown

func (m *LoginFrame) XXX_DiscardUnknown()

func (*LoginFrame) XXX_Marshal

func (m *LoginFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*LoginFrame) XXX_Merge

func (m *LoginFrame) XXX_Merge(src proto.Message)

func (*LoginFrame) XXX_Size

func (m *LoginFrame) XXX_Size() int

func (*LoginFrame) XXX_Unmarshal

func (m *LoginFrame) XXX_Unmarshal(b []byte) error

type LoginRspFrame

type LoginRspFrame struct {
	Ret                  bool     `protobuf:"varint,1,opt,name=ret,proto3" json:"ret,omitempty"`
	Msg                  string   `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*LoginRspFrame) Descriptor

func (*LoginRspFrame) Descriptor() ([]byte, []int)

func (*LoginRspFrame) GetMsg

func (m *LoginRspFrame) GetMsg() string

func (*LoginRspFrame) GetRet

func (m *LoginRspFrame) GetRet() bool

func (*LoginRspFrame) ProtoMessage

func (*LoginRspFrame) ProtoMessage()

func (*LoginRspFrame) Reset

func (m *LoginRspFrame) Reset()

func (*LoginRspFrame) String

func (m *LoginRspFrame) String() string

func (*LoginRspFrame) XXX_DiscardUnknown

func (m *LoginRspFrame) XXX_DiscardUnknown()

func (*LoginRspFrame) XXX_Marshal

func (m *LoginRspFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*LoginRspFrame) XXX_Merge

func (m *LoginRspFrame) XXX_Merge(src proto.Message)

func (*LoginRspFrame) XXX_Size

func (m *LoginRspFrame) XXX_Size() int

func (*LoginRspFrame) XXX_Unmarshal

func (m *LoginRspFrame) XXX_Unmarshal(b []byte) error

type OpenConnFrame

type OpenConnFrame struct {
	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Toaddr               string   `protobuf:"bytes,2,opt,name=toaddr,proto3" json:"toaddr,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*OpenConnFrame) Descriptor

func (*OpenConnFrame) Descriptor() ([]byte, []int)

func (*OpenConnFrame) GetId

func (m *OpenConnFrame) GetId() string

func (*OpenConnFrame) GetToaddr

func (m *OpenConnFrame) GetToaddr() string

func (*OpenConnFrame) ProtoMessage

func (*OpenConnFrame) ProtoMessage()

func (*OpenConnFrame) Reset

func (m *OpenConnFrame) Reset()

func (*OpenConnFrame) String

func (m *OpenConnFrame) String() string

func (*OpenConnFrame) XXX_DiscardUnknown

func (m *OpenConnFrame) XXX_DiscardUnknown()

func (*OpenConnFrame) XXX_Marshal

func (m *OpenConnFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*OpenConnFrame) XXX_Merge

func (m *OpenConnFrame) XXX_Merge(src proto.Message)

func (*OpenConnFrame) XXX_Size

func (m *OpenConnFrame) XXX_Size() int

func (*OpenConnFrame) XXX_Unmarshal

func (m *OpenConnFrame) XXX_Unmarshal(b []byte) error

type OpenConnRspFrame

type OpenConnRspFrame struct {
	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Ret                  bool     `protobuf:"varint,2,opt,name=ret,proto3" json:"ret,omitempty"`
	Msg                  string   `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*OpenConnRspFrame) Descriptor

func (*OpenConnRspFrame) Descriptor() ([]byte, []int)

func (*OpenConnRspFrame) GetId

func (m *OpenConnRspFrame) GetId() string

func (*OpenConnRspFrame) GetMsg

func (m *OpenConnRspFrame) GetMsg() string

func (*OpenConnRspFrame) GetRet

func (m *OpenConnRspFrame) GetRet() bool

func (*OpenConnRspFrame) ProtoMessage

func (*OpenConnRspFrame) ProtoMessage()

func (*OpenConnRspFrame) Reset

func (m *OpenConnRspFrame) Reset()

func (*OpenConnRspFrame) String

func (m *OpenConnRspFrame) String() string

func (*OpenConnRspFrame) XXX_DiscardUnknown

func (m *OpenConnRspFrame) XXX_DiscardUnknown()

func (*OpenConnRspFrame) XXX_Marshal

func (m *OpenConnRspFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*OpenConnRspFrame) XXX_Merge

func (m *OpenConnRspFrame) XXX_Merge(src proto.Message)

func (*OpenConnRspFrame) XXX_Size

func (m *OpenConnRspFrame) XXX_Size() int

func (*OpenConnRspFrame) XXX_Unmarshal

func (m *OpenConnRspFrame) XXX_Unmarshal(b []byte) error

type Outputer

type Outputer struct {
	// contains filtered or unexported fields
}

func NewOutputer

func NewOutputer(wg *group.Group, proto string, clienttype CLIENT_TYPE, config *Config, father *ProxyConn) (*Outputer, error)

func NewSSOutputer

func NewSSOutputer(wg *group.Group, proto string, clienttype CLIENT_TYPE, config *Config, father *ProxyConn) (*Outputer, error)

func (*Outputer) Close

func (o *Outputer) Close()

type PROXY_PROTO

type PROXY_PROTO int32
const (
	PROXY_PROTO_TCP   PROXY_PROTO = 0
	PROXY_PROTO_UDP   PROXY_PROTO = 1
	PROXY_PROTO_RUDP  PROXY_PROTO = 2
	PROXY_PROTO_RICMP PROXY_PROTO = 3
	PROXY_PROTO_KCP   PROXY_PROTO = 4
)

func (PROXY_PROTO) EnumDescriptor

func (PROXY_PROTO) EnumDescriptor() ([]byte, []int)

func (PROXY_PROTO) String

func (x PROXY_PROTO) String() string

type PingFrame

type PingFrame struct {
	Time                 int64    `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*PingFrame) Descriptor

func (*PingFrame) Descriptor() ([]byte, []int)

func (*PingFrame) GetTime

func (m *PingFrame) GetTime() int64

func (*PingFrame) ProtoMessage

func (*PingFrame) ProtoMessage()

func (*PingFrame) Reset

func (m *PingFrame) Reset()

func (*PingFrame) String

func (m *PingFrame) String() string

func (*PingFrame) XXX_DiscardUnknown

func (m *PingFrame) XXX_DiscardUnknown()

func (*PingFrame) XXX_Marshal

func (m *PingFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PingFrame) XXX_Merge

func (m *PingFrame) XXX_Merge(src proto.Message)

func (*PingFrame) XXX_Size

func (m *PingFrame) XXX_Size() int

func (*PingFrame) XXX_Unmarshal

func (m *PingFrame) XXX_Unmarshal(b []byte) error

type PongFrame

type PongFrame struct {
	Time                 int64    `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*PongFrame) Descriptor

func (*PongFrame) Descriptor() ([]byte, []int)

func (*PongFrame) GetTime

func (m *PongFrame) GetTime() int64

func (*PongFrame) ProtoMessage

func (*PongFrame) ProtoMessage()

func (*PongFrame) Reset

func (m *PongFrame) Reset()

func (*PongFrame) String

func (m *PongFrame) String() string

func (*PongFrame) XXX_DiscardUnknown

func (m *PongFrame) XXX_DiscardUnknown()

func (*PongFrame) XXX_Marshal

func (m *PongFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PongFrame) XXX_Merge

func (m *PongFrame) XXX_Merge(src proto.Message)

func (*PongFrame) XXX_Size

func (m *PongFrame) XXX_Size() int

func (*PongFrame) XXX_Unmarshal

func (m *PongFrame) XXX_Unmarshal(b []byte) error

type ProxyConn

type ProxyConn struct {
	// contains filtered or unexported fields
}

type ProxyFrame

type ProxyFrame struct {
	Type                 FRAME_TYPE        `protobuf:"varint,1,opt,name=type,proto3,enum=FRAME_TYPE" json:"type,omitempty"`
	LoginFrame           *LoginFrame       `protobuf:"bytes,2,opt,name=loginFrame,proto3" json:"loginFrame,omitempty"`
	LoginRspFrame        *LoginRspFrame    `protobuf:"bytes,3,opt,name=loginRspFrame,proto3" json:"loginRspFrame,omitempty"`
	DataFrame            *DataFrame        `protobuf:"bytes,4,opt,name=dataFrame,proto3" json:"dataFrame,omitempty"`
	PingFrame            *PingFrame        `protobuf:"bytes,5,opt,name=pingFrame,proto3" json:"pingFrame,omitempty"`
	PongFrame            *PongFrame        `protobuf:"bytes,6,opt,name=pongFrame,proto3" json:"pongFrame,omitempty"`
	OpenFrame            *OpenConnFrame    `protobuf:"bytes,7,opt,name=openFrame,proto3" json:"openFrame,omitempty"`
	OpenRspFrame         *OpenConnRspFrame `protobuf:"bytes,8,opt,name=openRspFrame,proto3" json:"openRspFrame,omitempty"`
	CloseFrame           *CloseFrame       `protobuf:"bytes,9,opt,name=closeFrame,proto3" json:"closeFrame,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func UnmarshalSrpFrame

func UnmarshalSrpFrame(b []byte, encrpyt string) (*ProxyFrame, error)

func (*ProxyFrame) Descriptor

func (*ProxyFrame) Descriptor() ([]byte, []int)

func (*ProxyFrame) GetCloseFrame

func (m *ProxyFrame) GetCloseFrame() *CloseFrame

func (*ProxyFrame) GetDataFrame

func (m *ProxyFrame) GetDataFrame() *DataFrame

func (*ProxyFrame) GetLoginFrame

func (m *ProxyFrame) GetLoginFrame() *LoginFrame

func (*ProxyFrame) GetLoginRspFrame

func (m *ProxyFrame) GetLoginRspFrame() *LoginRspFrame

func (*ProxyFrame) GetOpenFrame

func (m *ProxyFrame) GetOpenFrame() *OpenConnFrame

func (*ProxyFrame) GetOpenRspFrame

func (m *ProxyFrame) GetOpenRspFrame() *OpenConnRspFrame

func (*ProxyFrame) GetPingFrame

func (m *ProxyFrame) GetPingFrame() *PingFrame

func (*ProxyFrame) GetPongFrame

func (m *ProxyFrame) GetPongFrame() *PongFrame

func (*ProxyFrame) GetType

func (m *ProxyFrame) GetType() FRAME_TYPE

func (*ProxyFrame) ProtoMessage

func (*ProxyFrame) ProtoMessage()

func (*ProxyFrame) Reset

func (m *ProxyFrame) Reset()

func (*ProxyFrame) String

func (m *ProxyFrame) String() string

func (*ProxyFrame) XXX_DiscardUnknown

func (m *ProxyFrame) XXX_DiscardUnknown()

func (*ProxyFrame) XXX_Marshal

func (m *ProxyFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ProxyFrame) XXX_Merge

func (m *ProxyFrame) XXX_Merge(src proto.Message)

func (*ProxyFrame) XXX_Size

func (m *ProxyFrame) XXX_Size() int

func (*ProxyFrame) XXX_Unmarshal

func (m *ProxyFrame) XXX_Unmarshal(b []byte) error

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(config *Config, proto []string, listenaddrs []string) (*Server, error)

func (*Server) Close

func (s *Server) Close()

type ServerConn

type ServerConn struct {
	ProxyConn
	// contains filtered or unexported fields
}

type State

type State struct {
	RecvFrames      int32
	SendFrames      int32
	RecvSonnyFrames int32
	SendSonnyFrames int32
	CopyFrames      int32
	CheckFrames     int32

	RecvFps      int32
	SendFps      int32
	RecvSonnyFps int32
	SendSonnyFps int32
	CopyFps      int32
	CheckFps     int32

	MainRecvNum  int32
	MainSendNum  int32
	MainRecvSize int64
	MainSendSize int64
	RecvNum      int32
	SendNum      int32
	RecvSize     int64
	SendSize     int64

	RecvCompSaveSize int64
	SendCompSaveSize int64
}

type StateThreadNum

type StateThreadNum struct {
	ThreadNum       int32
	RecvThread      int32
	SendThread      int32
	RecvSonnyThread int32
	SendSonnyThread int32
	CopyThread      int32
	CheckThread     int32
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL