gf: Index | Files

package gudp

import ""

Package gtcp provides UDP server and client implementations.


Package Files

gudp.go gudp_conn.go gudp_func.go gudp_server.go

func NewNetConn Uses

func NewNetConn(remoteAddress string, localAddress ...string) (*net.UDPConn, error)

NewNetConn creates and returns a *net.UDPConn with given addresses.

func Send Uses

func Send(address string, data []byte, retry ...Retry) error

Send writes data to <address> using UDP connection and then closes the connection. Note that it is used for short connection usage.

func SendRecv Uses

func SendRecv(address string, data []byte, receive int, retry ...Retry) ([]byte, error)

SendRecv writes data to <address> using UDP connection, reads response and then closes the connection. Note that it is used for short connection usage.

type Conn Uses

type Conn struct {
    *net.UDPConn // Underlying UDP connection.
    // contains filtered or unexported fields

Conn handles the UDP connection.

func NewConn Uses

func NewConn(remoteAddress string, localAddress ...string) (*Conn, error)

NewConn creates UDP connection to <remoteAddress>. The optional parameter <localAddress> specifies the local address for connection.

func NewConnByNetConn Uses

func NewConnByNetConn(udp *net.UDPConn) *Conn

NewConnByNetConn creates a UDP connection object with given *net.UDPConn object.

func (*Conn) Recv Uses

func (c *Conn) Recv(buffer int, retry ...Retry) ([]byte, error)

Recv receives and returns data from remote address. The parameter <buffer> is used for customizing the receiving buffer size. If <buffer> <= 0, it uses the default buffer size, which is 1024 byte.

There's package border in UDP protocol, we can receive a complete package if specified buffer size is big enough. VERY NOTE that we should receive the complete package in once or else the leftover package data would be dropped.

func (*Conn) RecvWithTimeout Uses

func (c *Conn) RecvWithTimeout(length int, timeout time.Duration, retry ...Retry) (data []byte, err error)

RecvWithTimeout reads data from remote address with timeout.

func (*Conn) RemoteAddr Uses

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

RemoteAddr returns the remote address of current UDP connection. Note that it cannot use c.conn.RemoteAddr() as it's nil.

func (*Conn) Send Uses

func (c *Conn) Send(data []byte, retry ...Retry) (err error)

Send writes data to remote address.

func (*Conn) SendRecv Uses

func (c *Conn) SendRecv(data []byte, receive int, retry ...Retry) ([]byte, error)

SendRecv writes data to connection and blocks reading response.

func (*Conn) SendRecvWithTimeout Uses

func (c *Conn) SendRecvWithTimeout(data []byte, receive int, timeout time.Duration, retry ...Retry) ([]byte, error)

SendRecvWithTimeout writes data to connection and reads response with timeout.

func (*Conn) SendWithTimeout Uses

func (c *Conn) SendWithTimeout(data []byte, timeout time.Duration, retry ...Retry) (err error)

SendWithTimeout writes data to connection with timeout.

func (*Conn) SetDeadline Uses

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

func (*Conn) SetRecvBufferWait Uses

func (c *Conn) SetRecvBufferWait(d time.Duration)

SetRecvBufferWait sets the buffer waiting timeout when reading all data from connection. The waiting duration cannot be too long which might delay receiving data from remote address.

func (*Conn) SetRecvDeadline Uses

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

func (*Conn) SetSendDeadline Uses

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

type Retry Uses

type Retry struct {
    Count    int           // Max retry count.
    Interval time.Duration // Retry interval.

type Server Uses

type Server struct {
    // contains filtered or unexported fields

Server is the UDP server.

func GetServer Uses

func GetServer(name ...interface{}) *Server

GetServer creates and returns a UDP server instance with given name.

func NewServer Uses

func NewServer(address string, handler func(*Conn), name ...string) *Server

NewServer creates and returns a UDP server. The optional parameter <name> is used to specify its name, which can be used for GetServer function to retrieve its instance.

func (*Server) Close Uses

func (s *Server) Close() error

Close closes the connection. It will make server shutdowns immediately.

func (*Server) Run Uses

func (s *Server) Run() error

Run starts listening UDP connection.

func (*Server) SetAddress Uses

func (s *Server) SetAddress(address string)

SetAddress sets the server address for UDP server.

func (*Server) SetHandler Uses

func (s *Server) SetHandler(handler func(*Conn))

SetHandler sets the connection handler for UDP server.

Package gudp imports 7 packages (graph) and is imported by 1 packages. Updated 2020-03-30. Refresh now. Tools for package owners.