net

package
v2.6.0 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrListenerIsClosed   = io.EOF
	ErrConnectionIsClosed = io.EOF
	ErrWriteInterrupted   = errors.New("only part data was written to socket")
)

Functions

func IsCancelOrCloseError

func IsCancelOrCloseError(err error) bool

func IsConnectionBrokenError

func IsConnectionBrokenError(err error) bool

Check if error returned by operation on a socket failed because the other side has closed the connection.

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) *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 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) (*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.

type ErrorsOpt

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

func WithErrors

func WithErrors(v func(err error)) ErrorsOpt

type InterfaceError

type InterfaceError = func(iface *net.Interface, err error)

type MulticastHoplimitOpt

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

type MulticastInterfaceErrorOpt

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

type MulticastInterfaceMode

type MulticastInterfaceMode int
const (
	MulticastAllInterface      MulticastInterfaceMode = 0
	MulticastAnyInterface      MulticastInterfaceMode = 1
	MulticastSpecificInterface MulticastInterfaceMode = 2
)

type MulticastInterfaceModeOpt

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

type MulticastInterfaceOpt

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

type MulticastOption

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

A MulticastOption sets options such as hop limit, etc.

func WithAllMulticastInterface

func WithAllMulticastInterface() MulticastOption

func WithAnyMulticastInterface

func WithAnyMulticastInterface() MulticastOption

func WithMulticastHoplimit

func WithMulticastHoplimit(hoplimit int) MulticastOption

func WithMulticastInterface

func WithMulticastInterface(iface net.Interface) MulticastOption

func WithMulticastInterfaceError

func WithMulticastInterfaceError(interfaceError InterfaceError) MulticastOption

WithMulticastInterfaceError sets the callback for interface errors. If it is set error is not propagated as result of WriteMulticast.

func WithMulticastSource

func WithMulticastSource(source net.IP) MulticastOption

type MulticastOptions

type MulticastOptions struct {
	IFaceMode      MulticastInterfaceMode
	Iface          *net.Interface
	Source         *net.IP
	HopLimit       int
	InterfaceError InterfaceError
}

func DefaultMulticastOptions

func DefaultMulticastOptions() MulticastOptions

func (*MulticastOptions) Apply

func (m *MulticastOptions) Apply(o MulticastOption)

type MulticastSourceOpt

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

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) (*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.

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) (*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.

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, buffer []byte, opts ...MulticastOption) error

WriteMulticast sends multicast to the remote multicast address. By default it is sent over all network interfaces and all compatible source IP addresses with hop limit 1. Via opts you can specify the network interface, source IP address, and hop limit.

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 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