nazanet

package
v0.13.4 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2020 License: MIT Imports: 4 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNazaNet = errors.New("nazanet: fxxk")

Functions

This section is empty.

Types

type AvailUDPConnPool

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

从指定的UDP端口范围内,寻找可绑定监听的端口,绑定监听并返回 Pool只提供Acquire获取接口,不提供释放接口,连接资源是标准*net.UDPConn对象,需要释放时,外部直接Close即可

func NewAvailUDPConnPool

func NewAvailUDPConnPool(minPort uint16, maxPort uint16) *AvailUDPConnPool

func (*AvailUDPConnPool) Acquire

func (a *AvailUDPConnPool) Acquire() (*net.UDPConn, uint16, error)

func (*AvailUDPConnPool) Acquire2

func (a *AvailUDPConnPool) Acquire2() (*net.UDPConn, uint16, *net.UDPConn, uint16, error)

有的业务场景,需要返回两个可用的端口,并且必须是连续的 @return 前面的是端口小的,后面的是端口+1的

func (*AvailUDPConnPool) Peek

func (a *AvailUDPConnPool) Peek() (uint16, error)

通过Acquire获取到可用net.UDPConn对象后,将对象关闭,只返回可用的端口

type OnReadUDPPacket

type OnReadUDPPacket func(b []byte, remoteAddr net.Addr, err error)

@param err: 注意,当err不为nil时,read loop将结束并退出(该语义后续可能发生变化,具体见代码)

type UDPConnection

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

func NewUDPConnectionWithConn

func NewUDPConnectionWithConn(conn *net.UDPConn, onReadUDPPacket OnReadUDPPacket) *UDPConnection

直接使用已绑定好监听的net.UDPConn对象

func NewUDPConnectionWithLocalAddr

func NewUDPConnectionWithLocalAddr(localAddr string, onReadUDPPacket OnReadUDPPacket) *UDPConnection

func (*UDPConnection) Dispose

func (u *UDPConnection) Dispose() error

func (*UDPConnection) Listen

func (u *UDPConnection) Listen() error

配合func NewUDPConnectionWithLocalAddr使用

func (*UDPConnection) RunLoop

func (u *UDPConnection) RunLoop()

开启读取事件循环,读取到数据时通过回调返回给上层

func (*UDPConnection) Write

func (u *UDPConnection) Write(b []byte) error

Jump to

Keyboard shortcuts

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