Documentation
¶
Index ¶
- Variables
- func IsCancelOrCloseError(err error) bool
- func IsConnectionBrokenError(err error) bool
- func IsIPv6(addr net.IP) bool
- func WriteToUDP(conn *net.UDPConn, raddr *net.UDPAddr, b []byte) (int, error)
- type Conn
- func (c *Conn) Close() error
- func (c *Conn) LocalAddr() net.Addr
- func (c *Conn) NetConn() net.Conn
- func (c *Conn) ReadFullWithContext(ctx context.Context, buffer []byte) error
- func (c *Conn) ReadWithContext(ctx context.Context, buffer []byte) (int, error)
- func (c *Conn) RemoteAddr() net.Addr
- func (c *Conn) WriteWithContext(ctx context.Context, data []byte) error
- type ControlMessage
- type DTLSListener
- type DTLSListenerConfig
- type DTLSListenerOption
- type ErrorsOpt
- type GoPoolFunc
- type GoPoolOpt
- type InterfaceError
- type MulticastHoplimitOpt
- type MulticastInterfaceErrorOpt
- type MulticastInterfaceMode
- type MulticastInterfaceModeOpt
- type MulticastInterfaceOpt
- type MulticastOption
- func WithAllMulticastInterface() MulticastOption
- func WithAnyMulticastInterface() MulticastOption
- func WithMulticastHoplimit(hoplimit int) MulticastOption
- func WithMulticastInterface(iface net.Interface) MulticastOption
- func WithMulticastInterfaceError(interfaceError InterfaceError) MulticastOption
- func WithMulticastSource(source net.IP) MulticastOption
- type MulticastOptions
- type MulticastSourceOpt
- type TCPListener
- type TLSListener
- type UDPConn
- func (c *UDPConn) Close() error
- func (c *UDPConn) JoinGroup(ifi *net.Interface, group net.Addr) error
- func (c *UDPConn) LeaveGroup(ifi *net.Interface, group net.Addr) error
- func (c *UDPConn) LocalAddr() net.Addr
- func (c *UDPConn) NetConn() net.Conn
- func (c *UDPConn) Network() string
- func (c *UDPConn) ReadWithContext(ctx context.Context, buffer []byte) (int, *net.UDPAddr, error)
- func (c *UDPConn) RemoteAddr() net.Addr
- func (c *UDPConn) SetMulticastLoopback(on bool) error
- func (c *UDPConn) WriteMulticast(ctx context.Context, raddr *net.UDPAddr, buffer []byte, ...) error
- func (c *UDPConn) WriteWithContext(ctx context.Context, raddr *net.UDPAddr, buffer []byte) error
- type UDPConnConfig
- type UDPOption
Constants ¶
This section is empty.
Variables ¶
var ( ErrListenerIsClosed = io.EOF ErrConnectionIsClosed = io.EOF ErrWriteInterrupted = errors.New("only part data was written to socket") )
var DefaultDTLSListenerConfig = DTLSListenerConfig{ GoPool: func(f func()) error { go f() return nil }, }
var DefaultUDPConnConfig = UDPConnConfig{ Errors: func(err error) { }, }
Functions ¶
func IsCancelOrCloseError ¶
func IsConnectionBrokenError ¶
Check if error returned by operation on a socket failed because the other side has closed the connection.
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 (*Conn) LocalAddr ¶
LocalAddr returns the local network address. The Addr returned is shared by all invocations of LocalAddr, so do not modify it.
func (*Conn) NetConn ¶
NetConn returns the underlying connection that is wrapped by c. The Conn returned is shared by all invocations of Connection, so do not modify it.
func (*Conn) ReadFullWithContext ¶
ReadFullWithContext reads stream with context until whole buffer is satisfied.
func (*Conn) ReadWithContext ¶
ReadWithContext reads stream with context.
func (*Conn) RemoteAddr ¶
RemoteAddr returns the remote network address. The Addr returned is shared by all invocations of RemoteAddr, so do not modify it.
type ControlMessage ¶
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 ¶
AcceptWithContext waits with context for a generic Conn.
func (*DTLSListener) Addr ¶
func (l *DTLSListener) Addr() net.Addr
Addr represents a network end point address.
type DTLSListenerConfig ¶
type DTLSListenerConfig struct {
GoPool GoPoolFunc
}
type DTLSListenerOption ¶
type DTLSListenerOption interface {
ApplyDTLS(*DTLSListenerConfig)
}
A DTLSListenerOption sets options such as gopool.
type ErrorsOpt ¶
type ErrorsOpt struct {
// contains filtered or unexported fields
}
func WithErrors ¶
func (ErrorsOpt) ApplyUDP ¶
func (h ErrorsOpt) ApplyUDP(o *UDPConnConfig)
type GoPoolFunc ¶
type GoPoolFunc = func(f func()) error
type GoPoolOpt ¶
type GoPoolOpt struct {
// contains filtered or unexported fields
}
GoPoolOpt gopool option.
func WithGoPool ¶
func WithGoPool(goPool GoPoolFunc) GoPoolOpt
WithGoPool sets function for managing spawning go routines for handling incoming request's. Eg: https://github.com/panjf2000/ants.
func (GoPoolOpt) ApplyDTLS ¶
func (o GoPoolOpt) ApplyDTLS(cfg *DTLSListenerConfig)
type InterfaceError ¶
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 ¶
AcceptWithContext waits with context for a generic Conn.
func (*TCPListener) Addr ¶
func (l *TCPListener) Addr() net.Addr
Addr represents a network end point address.
type TLSListener ¶
type TLSListener struct {
// contains filtered or unexported fields
}
TLSListener is a TLS listener that provides accept with context.
func NewTLSListener ¶
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 ¶
AcceptWithContext waits with context for a generic Conn.
func (*TLSListener) Addr ¶
func (l *TLSListener) Addr() net.Addr
Addr represents a network end point address.
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 NewUDPConn ¶
NewUDPConn creates connection over net.UDPConn.
func (*UDPConn) JoinGroup ¶
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 ¶
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 ¶
LocalAddr returns the local network address. The Addr returned is shared by all invocations of LocalAddr, so do not modify it.
func (*UDPConn) NetConn ¶
NetConn returns the underlying connection that is wrapped by c. The Conn returned is shared by all invocations of NetConn, so do not modify it.
func (*UDPConn) ReadWithContext ¶
ReadWithContext reads packet with context.
func (*UDPConn) RemoteAddr ¶
RemoteAddr returns the remote network address. The Addr returned is shared by all invocations of RemoteAddr, so do not modify it.
func (*UDPConn) SetMulticastLoopback ¶
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.
type UDPConnConfig ¶
type UDPConnConfig struct {
Errors func(err error)
}
type UDPOption ¶
type UDPOption interface {
ApplyUDP(*UDPConnConfig)
}
A UDPOption sets options such as errors parameters, etc.