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) Connection() net.Conn
- func (c *Conn) LocalAddr() net.Addr
- 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 ErrorsOpt
- 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) 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 UDPOption
Constants ¶
This section is empty.
Variables ¶
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) Connection ¶
Connection returns the network connection. The Conn returned is shared by all invocations of Connection, so do not modify it.
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) 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 ¶
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 ErrorsOpt ¶
type ErrorsOpt struct {
// contains filtered or unexported fields
}
func WithErrors ¶
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) 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.