quic

package
v0.0.0-...-18ecc23 Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DialAddrContext

func DialAddrContext(ctx context.Context, addr string, tlsConf *tls.Config, config *quic.Config) (net.Conn, error)

DialAddrContext establishes a new QUIC connection to a server. It uses a new UDP connection and closes this connection when the QUIC session is closed. The hostname for SNI is taken from the given address.

func InheritedListen

func InheritedListen(laddr string, tlsConf *tls.Config, config *quic.Config) (net.Listener, error)

InheritedListen announces on the local network address laddr. The network net is "quic". It returns an inherited net.Listener for the matching network and address, or creates a new one using net.Listen.

func SetInherited

func SetInherited() error

SetInherited adds the files and envs to be inherited by the new process. Notes:

Only for reboot!
Windows system are not supported!

Types

type Conn

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

Conn is a QUIC network connection.

Multiple goroutines may invoke methods on a Conn simultaneously.

func (*Conn) Close

func (c *Conn) Close() error

Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.

func (*Conn) LocalAddr

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

LocalAddr returns the local network address.

func (*Conn) Read

func (c *Conn) Read(b []byte) (n int, err error)

Read reads data from the connection. Read can be made to time out and return an Error with Timeout() == true after a fixed time limit; see SetDeadline and SetReadDeadline.

func (*Conn) RemoteAddr

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

RemoteAddr returns the remote network address.

func (*Conn) SetDeadline

func (c *Conn) SetDeadline(t time.Time) error

SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.

A deadline is an absolute time after which I/O operations fail with a timeout (see type Error) instead of blocking. The deadline applies to all future and pending I/O, not just the immediately following call to Read or Write. After a deadline has been exceeded, the connection can be refreshed by setting a deadline in the future.

An idle timeout can be implemented by repeatedly extending the deadline after successful Read or Write calls.

A zero value for t means I/O operations will not time out.

func (*Conn) SetReadDeadline

func (c *Conn) SetReadDeadline(t time.Time) error

SetReadDeadline sets the deadline for future Read calls and any currently-blocked Read call. A zero value for t means Read will not time out.

func (*Conn) SetWriteDeadline

func (c *Conn) SetWriteDeadline(t time.Time) error

SetWriteDeadline sets the deadline for future Write calls and any currently-blocked Write call. Even if write times out, it may return n > 0, indicating that some of the data was successfully written. A zero value for t means Write will not time out.

func (*Conn) Write

func (c *Conn) Write(b []byte) (n int, err error)

Write writes data to the connection. Write can be made to time out and return an Error with Timeout() == true after a fixed time limit; see SetDeadline and SetWriteDeadline.

type Listener

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

A Listener is a generic network listener for stream-oriented protocols.

Multiple goroutines may invoke methods on a Listener simultaneously.

func Listen

func Listen(conn net.PacketConn, tlsConf *tls.Config, config *quic.Config) (*Listener, error)

Listen listens for QUIC connections on a given net.PacketConn. A single PacketConn only be used for a single call to Listen. The PacketConn can be used for simultaneous calls to Dial. QUIC connection IDs are used for demultiplexing the different connections. The tls.Config must not be nil and must contain a certificate configuration. The quic.Config may be nil, in that case the default values will be used.

func ListenAddr

func ListenAddr(addr string, tlsConf *tls.Config, config *quic.Config) (*Listener, error)

ListenAddr announces on the local network address laddr. The tls.Config must not be nil and must contain a certificate configuration. The quic.Config may be nil, in that case the default values will be used.

func ListenUDPAddr

func ListenUDPAddr(udpAddr *net.UDPAddr, tlsConf *tls.Config, config *quic.Config) (*Listener, error)

ListenUDPAddr announces on the local network address laddr. The tls.Config must not be nil and must contain a certificate configuration. The quic.Config may be nil, in that case the default values will be used.

func (*Listener) Accept

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

Accept waits for and returns the next connection to the listener.

func (*Listener) Addr

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

Addr returns the listener's network address.

func (*Listener) Close

func (l *Listener) Close() error

Close closes the listener PacketConn.

func (*Listener) PacketConn

func (l *Listener) PacketConn() net.PacketConn

PacketConn returns the net.PacketConn.

Jump to

Keyboard shortcuts

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