vconn

package module
v1.3.2 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 9 Imported by: 12

README

vconn Build Status

golang vconn,支持检测连接断开通知。

列表:

type CloseNotifier interface {                          // 关闭通知接口
    CloseNotify() <-chan error                                  // 关闭通知
}
type Conn struct {                                      // 连接
}
    func NewConn(c net.Conn) net.Conn                           // 新连接
    func (T *Conn) SetReadDiscard(y bool)                       // 读取读取丢弃
    func (T *Conn) SetReadLimit(remain int)                     // 限制读取大小
    func (T *Conn) DisableBackgroundRead(y bool)                // 禁止后台读取
    func (T *Conn) CloseNotify() <-chan error                   // 关闭通知
    func (T *Conn) Read(b []byte) (n int, err error)            // 读取
    func (T *Conn) Write(b []byte) (n int, err error)           // 写入
    func (T *Conn) Close() error                                // 关闭
    func (T *Conn) LocalAddr() net.Addr                         // 本地地址
    func (T *Conn) RemoteAddr() net.Addr                        // 远程地址
    func (T *Conn) SetDeadline(t time.Time) error               // 读写超时
    func (T *Conn) SetReadDeadline(t time.Time) error           // 读超时
    func (T *Conn) SetWriteDeadline(t time.Time) error          // 写超时

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewConn

func NewConn(c net.Conn) net.Conn

Types

type CloseNotifier

type CloseNotifier interface {
	CloseNotify() <-chan error // 事件通知
}

type Conn

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

func New added in v1.2.0

func New(c net.Conn) *Conn

func (*Conn) Close

func (T *Conn) Close() error

func (*Conn) CloseNotify

func (T *Conn) CloseNotify() <-chan error

注意:这里会有两个通知,1)远程主动断开 2)本地调用断开 如果你是用于断开连接重连,需要判断返回的 error 状态。 error != nil 表示远程主动断开(一般用于这个) error == nil 表示本地调用断开(关闭连接,通道关闭,返回nil)

func (*Conn) DisableBackgroundRead added in v1.1.0

func (T *Conn) DisableBackgroundRead(y bool)

停止后台实时监听的连接关闭状态,在你自己调用Read或Write发生错误,依然 CloseNotify 返回连接关闭信号。

func (*Conn) LocalAddr

func (T *Conn) LocalAddr() net.Addr

func (*Conn) RawConn added in v1.1.2

func (T *Conn) RawConn() net.Conn

返回原始连接;如果在后台读取时候,收到1位数据。此时读取出源连接后,读取数据会少1位。造成数据不完整。 可以使用 RawConnFull判断有没有后台收到一位数据。

func (*Conn) RawConnFull added in v1.3.0

func (T *Conn) RawConnFull(p []byte) (net.Conn, int)

判断该源始连接是否完整可用。

p []byte 	读取已经在后台得到的数据
net.Conn	源连接
int			0连接是完整的, >0 有后台数据

func (*Conn) Read

func (T *Conn) Read(b []byte) (n int, err error)

func (*Conn) RemoteAddr

func (T *Conn) RemoteAddr() net.Addr

func (*Conn) SetBackgroundReadDiscard added in v1.0.9

func (T *Conn) SetBackgroundReadDiscard(y bool)

后台读取丢弃,只要用于连接加入连接池后,期间收到的数据全部丢弃。 用于特殊环境,普通用户正常不需要用到他。

func (*Conn) SetDeadline

func (T *Conn) SetDeadline(t time.Time) error

func (*Conn) SetReadDeadline

func (T *Conn) SetReadDeadline(t time.Time) error

func (*Conn) SetReadLimit added in v1.1.0

func (T *Conn) SetReadLimit(remain int)

设置读取限制

remain int	设置 0 默认限制为(math.MaxInt32)

func (*Conn) SetWriteDeadline

func (T *Conn) SetWriteDeadline(t time.Time) error

func (*Conn) Write

func (T *Conn) Write(b []byte) (n int, err error)

Jump to

Keyboard shortcuts

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