net

package
v2.0.0-...-691db5a Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2021 License: Apache-2.0 Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrListenerIsClosed = errors.New("listen socket was closed")

Functions

func IsIPv6

func IsIPv6(addr net.IP) bool

IsIPv6 return's true if addr is IPV6.

func WriteToUDP

func WriteToUDP(conn *net.UDPConn, raddr *net.UDPAddr, b []byte) (int, error)

WriteToUDP acts just like net.UDPConn.WriteTo(), but uses a *SessionUDP instead of a net.Addr.

Types

type Conn

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

Conn is a generic stream-oriented network connection that provides Read/Write with context.

Multiple goroutines may invoke methods on a Conn simultaneously.

func NewConn

func NewConn(c net.Conn, opts ...ConnOption) *Conn

NewConn creates connection over net.Conn.

func (*Conn) Close

func (c *Conn) Close() error

Close closes the connection.

func (*Conn) Connection

func (c *Conn) Connection() net.Conn

Connection returns the network connection. The Conn returned is shared by all invocations of Connection, so do not modify it.

func (*Conn) LocalAddr

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

LocalAddr returns the local network address. The Addr returned is shared by all invocations of LocalAddr, so do not modify it.

func (*Conn) ReadFullWithContext

func (c *Conn) ReadFullWithContext(ctx context.Context, buffer []byte) error

ReadFullWithContext reads stream with context until whole buffer is satisfied.

func (*Conn) ReadWithContext

func (c *Conn) ReadWithContext(ctx context.Context, buffer []byte) (int, error)

ReadWithContext reads stream with context.

func (*Conn) RemoteAddr

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

RemoteAddr returns the remote network address. The Addr returned is shared by all invocations of RemoteAddr, so do not modify it.

func (*Conn) WriteWithContext

func (c *Conn) WriteWithContext(ctx context.Context, data []byte) error

WriteWithContext writes data with context.

type ConnOption

type ConnOption interface {
	// contains filtered or unexported methods
}

A ConnOption sets options such as heartBeat, errors parameters, etc.

type ControlMessage

type ControlMessage struct {
	Src     net.IP // source address, specifying only
	IfIndex int    // interface index, must be 1 <= value when specifying
}

type DTLSListener

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

DTLSListener is a DTLS listener that provides accept with context.

func NewDTLSListener

func NewDTLSListener(network string, addr string, dtlsCfg *dtls.Config, opts ...DTLSListenerOption) (*DTLSListener, error)

NewDTLSListener creates dtls listener. Known networks are "udp", "udp4" (IPv4-only), "udp6" (IPv6-only).

func (*DTLSListener) Accept

func (l *DTLSListener) Accept() (net.Conn, error)

Accept waits for a generic Conn.

func (*DTLSListener) AcceptWithContext

func (l *DTLSListener) AcceptWithContext(ctx context.Context) (net.Conn, error)

AcceptWithContext waits with context for a generic Conn.

func (*DTLSListener) Addr

func (l *DTLSListener) Addr() net.Addr

Addr represents a network end point address.

func (*DTLSListener) Close

func (l *DTLSListener) Close() error

Close closes the connection.

func (*DTLSListener) SetDeadline

func (l *DTLSListener) SetDeadline(t time.Time) error

SetDeadline sets deadline for accept operation.

type DTLSListenerOption

type DTLSListenerOption interface {
	// contains filtered or unexported methods
}

A DTLSListenerOption sets options such as heartBeat parameters, etc.

type ErrorsOpt

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

func WithErrors

func WithErrors(v func(err error)) ErrorsOpt

type HeartBeatOpt

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

func WithHeartBeat

func WithHeartBeat(v time.Duration) HeartBeatOpt

type OnReadTimeoutOpt

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

func WithOnReadTimeout

func WithOnReadTimeout(onReadTimeout func() error) OnReadTimeoutOpt

type OnTimeoutOpt

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

func WithOnTimeout

func WithOnTimeout(onTimeout func() error) OnTimeoutOpt

type OnWriteTimeoutOpt

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

func WithOnWriteTimeout

func WithOnWriteTimeout(onWriteTimeout func() error) OnWriteTimeoutOpt

type TCPListener

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

TCPListener is a TCP network listener that provides accept with context.

func NewTCPListener

func NewTCPListener(network string, addr string, opts ...TCPListenerOption) (*TCPListener, error)

NewTCPListener creates tcp listener. Known networks are "tcp", "tcp4" (IPv4-only), "tcp6" (IPv6-only).

func (*TCPListener) Accept

func (l *TCPListener) Accept() (net.Conn, error)

Accept waits for a generic Conn.

func (*TCPListener) AcceptWithContext

func (l *TCPListener) AcceptWithContext(ctx context.Context) (net.Conn, error)

AcceptWithContext waits with context for a generic Conn.

func (*TCPListener) Addr

func (l *TCPListener) Addr() net.Addr

Addr represents a network end point address.

func (*TCPListener) Close

func (l *TCPListener) Close() error

Close closes the connection.

func (*TCPListener) SetDeadline

func (l *TCPListener) SetDeadline(t time.Time) error

SetDeadline sets deadline for accept operation.

type TCPListenerOption

type TCPListenerOption interface {
	// contains filtered or unexported methods
}

A TCPListenerOption sets options such as heartBeat parameters, etc.

type TLSListener

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

TLSListener is a TLS listener that provides accept with context.

func NewTLSListener

func NewTLSListener(network string, addr string, tlsCfg *tls.Config, opts ...TLSListenerOption) (*TLSListener, error)

NewTLSListener creates tcp listener. Known networks are "tcp", "tcp4" (IPv4-only), "tcp6" (IPv6-only).

func (*TLSListener) Accept

func (l *TLSListener) Accept() (net.Conn, error)

Accept waits for a generic Conn.

func (*TLSListener) AcceptWithContext

func (l *TLSListener) AcceptWithContext(ctx context.Context) (net.Conn, error)

AcceptWithContext waits with context for a generic Conn.

func (*TLSListener) Addr

func (l *TLSListener) Addr() net.Addr

Addr represents a network end point address.

func (*TLSListener) Close

func (l *TLSListener) Close() error

Close closes the connection.

func (*TLSListener) SetDeadline

func (l *TLSListener) SetDeadline(t time.Time) error

SetDeadline sets deadline for accept operation.

type TLSListenerOption

type TLSListenerOption interface {
	// contains filtered or unexported methods
}

A TLSListenerOption sets options such as heartBeat parameters, etc.

type UDPConn

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

UDPConn is a udp connection provides Read/Write with context.

Multiple goroutines may invoke methods on a UDPConn simultaneously.

func NewListenUDP

func NewListenUDP(network, addr string, opts ...UDPOption) (*UDPConn, error)

func NewUDPConn

func NewUDPConn(network string, c *net.UDPConn, opts ...UDPOption) *UDPConn

NewUDPConn creates connection over net.UDPConn.

func (*UDPConn) Close

func (c *UDPConn) Close() error

Close closes the connection.

func (*UDPConn) JoinGroup

func (c *UDPConn) JoinGroup(ifi *net.Interface, group net.Addr) error

JoinGroup joins the group address group on the interface ifi. By default all sources that can cast data to group are accepted. It's possible to mute and unmute data transmission from a specific source by using ExcludeSourceSpecificGroup and IncludeSourceSpecificGroup. JoinGroup uses the system assigned multicast interface when ifi is nil, although this is not recommended because the assignment depends on platforms and sometimes it might require routing configuration.

func (*UDPConn) LeaveGroup

func (c *UDPConn) LeaveGroup(ifi *net.Interface, group net.Addr) error

LeaveGroup leaves the group address group on the interface ifi regardless of whether the group is any-source group or source-specific group.

func (*UDPConn) LocalAddr

func (c *UDPConn) LocalAddr() net.Addr

LocalAddr returns the local network address. The Addr returned is shared by all invocations of LocalAddr, so do not modify it.

func (*UDPConn) Network

func (c *UDPConn) Network() string

Network name of the network (for example, udp4, udp6, udp)

func (*UDPConn) ReadWithContext

func (c *UDPConn) ReadWithContext(ctx context.Context, buffer []byte) (int, *net.UDPAddr, error)

ReadWithContext reads packet with context.

func (*UDPConn) RemoteAddr

func (c *UDPConn) RemoteAddr() net.Addr

RemoteAddr returns the remote network address. The Addr returned is shared by all invocations of RemoteAddr, so do not modify it.

func (*UDPConn) SetMulticastLoopback

func (c *UDPConn) SetMulticastLoopback(on bool) error

SetMulticastLoopback sets whether transmitted multicast packets should be copied and send back to the originator.

func (*UDPConn) WriteMulticast

func (c *UDPConn) WriteMulticast(ctx context.Context, raddr *net.UDPAddr, hopLimit int, buffer []byte) error

func (*UDPConn) WriteWithContext

func (c *UDPConn) WriteWithContext(ctx context.Context, raddr *net.UDPAddr, buffer []byte) error

WriteWithContext writes data with context.

type UDPOption

type UDPOption interface {
	// contains filtered or unexported methods
}

A UDPOption sets options such as heartBeat, errors parameters, etc.

Directories

Path Synopsis
monitor

Jump to

Keyboard shortcuts

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