socket

package
v1.14.0 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultBufferSize = 32 * 1024

DefaultBufferSize is the default buffer size

View Source
const EOL byte = '\n'

EOL is the end of line, default delimiter of the socket

Variables

View Source
var (
	ErrInvalidInstance = fmt.Errorf("invalid instance")
)

Functions

This section is empty.

Types

type Client added in v1.11.5

type Client interface {
	io.ReadWriteCloser

	SetTLS(enable bool, config libtls.TLSConfig) error

	// RegisterFuncError registers a FuncError used to process errors during running process
	// f FuncError
	RegisterFuncError(f FuncError)

	// RegisterFuncInfo registers the given FuncInfo used to process state connection information during running process.
	// f FuncInfo - the FuncInfo to be registered.
	RegisterFuncInfo(f FuncInfo)

	// Connect is used to establish a connection with the server.
	// ctx context.Context
	// error
	Connect(ctx context.Context) error

	// IsConnected returns a boolean value indicating whether the connection is currently established.
	// bool
	IsConnected() bool

	// Once is used to send a request to the server and wait for a response.
	// ctx context.Context, request io.Reader, fct Response.
	// error.
	Once(ctx context.Context, request io.Reader, fct Response) error
}

type ConnState added in v1.11.5

type ConnState uint8

ConnState is used to process state connection

const (
	ConnectionDial ConnState = iota
	ConnectionNew
	ConnectionRead
	ConnectionCloseRead
	ConnectionHandler
	ConnectionWrite
	ConnectionCloseWrite
	ConnectionClose
)

func (ConnState) String added in v1.13.1

func (c ConnState) String() string

type FctCheck added in v1.14.0

type FctCheck func() bool

type FctClose added in v1.14.0

type FctClose func() error

type FctDone added in v1.14.0

type FctDone func() <-chan struct{}

type FctReader added in v1.14.0

type FctReader func(p []byte) (n int, err error)

type FctWriter added in v1.14.0

type FctWriter func(p []byte) (n int, err error)

type FuncError

type FuncError func(e ...error)

FuncError is used to process errors during running process

type FuncInfo added in v1.11.5

type FuncInfo func(local, remote net.Addr, state ConnState)

FuncInfo is used to process state connection information during running server.

type FuncInfoSrv added in v1.13.1

type FuncInfoSrv func(msg string)

FuncInfoSrv is used to process information about the listening server

type Handler

type Handler func(request Reader, response Writer)

Handler is used to process request

type Reader added in v1.14.0

type Reader interface {
	io.ReadCloser
	IsConnected() bool
	Done() <-chan struct{}
}

func NewReader added in v1.14.0

func NewReader(fctRead FctReader, fctClose FctClose, fctCheck FctCheck, fctDone FctDone) Reader

type Response added in v1.12.2

type Response func(r io.Reader)

Response is used to process response

type Server

type Server interface {
	io.Closer

	// RegisterFuncError registers a FuncError used to process errors during running server
	// f FuncError
	RegisterFuncError(f FuncError)

	// RegisterFuncInfo registers the given FuncInfo used to process state connection information during running server.
	// f FuncInfo - the FuncInfo to be registered.
	RegisterFuncInfo(f FuncInfo)

	// RegisterFuncInfoServer registers the given FuncInfoSrv used to process information about the listening server.
	// f FuncInfoSrv parameter.
	RegisterFuncInfoServer(f FuncInfoSrv)

	// SetTLS defines if the server should use TLS and if so, the configuration associated.
	// Parameters:
	//   - enable bool defines if the server should use TLS
	//   - config libtls.TLSConfig defines the configuration
	// Returns: error
	SetTLS(enable bool, config libtls.TLSConfig) error

	// Listen is a function that listens for incoming connections.
	// It takes a context.Context as a parameter and returns an error.
	Listen(ctx context.Context) error

	// Shutdown is a function that stops the server.
	// ctx context.Context
	// error
	Shutdown(ctx context.Context) error

	// IsRunning returns a boolean value indicating whether the process is currently running.
	// Returns a boolean value.
	IsRunning() bool

	// IsGone returns a boolean value indicating the process is in shutting down and has been gone.
	// Returns a boolean.
	IsGone() bool

	// Done returns a read-only channel who's value is set when the shutdown process is reached.
	// Returns <-chan struct{}.
	Done() <-chan struct{}

	// OpenConnections returns the number of open connections.
	// Returns an int64.
	OpenConnections() int64
}

type Writer added in v1.14.0

type Writer interface {
	io.WriteCloser
	IsConnected() bool
	Done() <-chan struct{}
}

func NewWriter added in v1.14.0

func NewWriter(fctWrite FctWriter, fctClose FctClose, fctCheck FctCheck, fctDone FctDone) Writer

Directories

Path Synopsis
tcp
udp
tcp
udp

Jump to

Keyboard shortcuts

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