Documentation
¶
Overview ¶
Package conn 对 net.Conn 的扩展,包括超时读取、限速统计和双向数据交换等功能
Index ¶
- Variables
- func DataExchange(conn1, conn2 net.Conn, idleTimeout time.Duration, buffer1, buffer2 []byte) error
- type RateLimiter
- type StatConn
- func (sc *StatConn) AsTCPConn() (*net.TCPConn, bool)
- func (sc *StatConn) AsUDPConn() (*net.UDPConn, bool)
- func (sc *StatConn) Close() error
- func (sc *StatConn) CloseRead() error
- func (sc *StatConn) CloseWrite() error
- func (sc *StatConn) GetConn() net.Conn
- func (sc *StatConn) GetRX() uint64
- func (sc *StatConn) GetRate() *RateLimiter
- func (sc *StatConn) GetTX() uint64
- func (sc *StatConn) GetTotal() uint64
- func (sc *StatConn) IsTCP() bool
- func (sc *StatConn) IsUDP() bool
- func (sc *StatConn) LocalAddr() net.Addr
- func (sc *StatConn) NetworkType() string
- func (sc *StatConn) Read(b []byte) (int, error)
- func (sc *StatConn) ReadFromUDP(b []byte) (int, *net.UDPAddr, error)
- func (sc *StatConn) ReadMsgUDP(b, oob []byte) (n, oobn, flags int, addr *net.UDPAddr, err error)
- func (sc *StatConn) RemoteAddr() net.Addr
- func (sc *StatConn) Reset()
- func (sc *StatConn) SetDeadline(t time.Time) error
- func (sc *StatConn) SetKeepAlive(keepalive bool) error
- func (sc *StatConn) SetKeepAlivePeriod(d time.Duration) error
- func (sc *StatConn) SetLinger(sec int) error
- func (sc *StatConn) SetNoDelay(noDelay bool) error
- func (sc *StatConn) SetReadBuffer(bytes int) error
- func (sc *StatConn) SetReadDeadline(t time.Time) error
- func (sc *StatConn) SetWriteBuffer(bytes int) error
- func (sc *StatConn) SetWriteDeadline(t time.Time) error
- func (sc *StatConn) Write(b []byte) (int, error)
- func (sc *StatConn) WriteMsgUDP(b, oob []byte, addr *net.UDPAddr) (n, oobn int, err error)
- func (sc *StatConn) WriteToUDP(b []byte, addr *net.UDPAddr) (int, error)
- type TimeoutReader
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNotTCPConn = errors.New("not a TCP connection") ErrNotUDPConn = errors.New("not a UDP connection") )
定义错误
Functions ¶
Types ¶
type RateLimiter ¶
type RateLimiter struct {
// contains filtered or unexported fields
}
RateLimiter 全局令牌桶读写限速器
func NewRateLimiter ¶
func NewRateLimiter(readBytesPerSecond, writeBytesPerSecond int64) *RateLimiter
NewRateLimiter 创建新的全局令牌桶读写限速器
func (*RateLimiter) SetRate ¶
func (rl *RateLimiter) SetRate(readBytesPerSecond, writeBytesPerSecond int64)
SetRate 动态调整读写速率
type StatConn ¶
type StatConn struct {
Conn net.Conn
RX *uint64
TX *uint64
Rate *RateLimiter
}
StatConn 是一个包装了 net.Conn 的结构体,用于统计并限制读取和写入的字节数
func NewStatConn ¶
func NewStatConn(conn net.Conn, rx, tx *uint64, rate *RateLimiter) *StatConn
NewStatConn 创建一个新的 StatConn
func (*StatConn) ReadFromUDP ¶
ReadFromUDP 从UDP连接读取数据包,返回数据和发送方地址
func (*StatConn) ReadMsgUDP ¶
ReadMsgUDP 从UDP连接读取消息,支持读取控制信息
func (*StatConn) SetDeadline ¶
SetDeadline 设置连接的读写超时
func (*StatConn) SetKeepAlive ¶
SetKeepAlive 设置TCP连接的KeepAlive状态
func (*StatConn) SetKeepAlivePeriod ¶
SetKeepAlivePeriod 设置TCP连接的KeepAlive周期
func (*StatConn) SetNoDelay ¶
SetNoDelay 设置TCP连接的NoDelay状态(禁用/启用Nagle算法)
func (*StatConn) SetReadBuffer ¶
SetReadBuffer 设置UDP连接的读取缓冲区大小
func (*StatConn) SetReadDeadline ¶
SetReadDeadline 设置连接的读取超时
func (*StatConn) SetWriteBuffer ¶
SetWriteBuffer 设置UDP连接的写入缓冲区大小
func (*StatConn) SetWriteDeadline ¶
SetWriteDeadline 设置连接的写入超时
func (*StatConn) WriteMsgUDP ¶
WriteMsgUDP 向UDP连接发送消息,支持发送控制信息
Click to show internal directories.
Click to hide internal directories.