Package tcp
Overview ▹
Index ▹
Constants
const (
// DefaultTimeout is the default length of time to wait for first byte.
DefaultTimeout = 30 * time.Second
)
func Dial ¶
func Dial(network, address string, header byte) (net.Conn, error)
Dial connects to a remote mux listener with a given header byte.
type Mux ¶
Mux multiplexes a network connection.
type Mux struct { // The amount of time to wait for the first header byte. Timeout time.Duration // Out-of-band error logger Logger *log.Logger // contains filtered or unexported fields }
func NewMux ¶
func NewMux() *Mux
NewMux returns a new instance of Mux.
func (*Mux) DefaultListener ¶
func (mux *Mux) DefaultListener() net.Listener
DefaultListener will return a net.Listener that will pass-through any connections with non-registered values for the first byte of the connection. The connections returned from this listener's Accept() method will replay the first byte of the connection as a short first Read().
This can be used to pass to an HTTP server, so long as there are no conflicts with registered listener bytes and the first character of the HTTP request: 71 ('G') for GET, etc.
func (*Mux) Listen ¶
func (mux *Mux) Listen(header byte) net.Listener
Listen returns a listener identified by header. Any connection accepted by mux is multiplexed based on the initial header byte.
func (*Mux) Serve ¶
func (mux *Mux) Serve(ln net.Listener) error
Serve handles connections from ln and multiplexes then across registered listeners.