Documentation ¶
Overview ¶
Package gtcp provides UDP server and client implementations.
Index ¶
- Constants
- func Checksum(buffer []byte) uint32
- func NewNetConn(raddr string, laddr ...string) (*net.UDPConn, error)
- func Send(addr string, data []byte, retry ...Retry) error
- func SendPkg(addr string, data []byte, retry ...Retry) error
- func SendPkgWithTimeout(addr string, data []byte, timeout time.Duration, retry ...Retry) error
- func SendRecv(addr string, data []byte, receive int, retry ...Retry) ([]byte, error)
- func SendRecvPkg(addr string, data []byte, retry ...Retry) ([]byte, error)
- func SendRecvPkgWithTimeout(addr string, data []byte, timeout time.Duration, retry ...Retry) ([]byte, error)
- type Conn
- func (c *Conn) Close() error
- func (c *Conn) LocalAddr() net.Addr
- func (c *Conn) Recv(length int, retry ...Retry) ([]byte, error)
- func (c *Conn) RecvPkg(retry ...Retry) (result []byte, err error)
- func (c *Conn) RecvPkgWithTimeout(timeout time.Duration, retry ...Retry) ([]byte, error)
- func (c *Conn) RecvWithTimeout(length int, timeout time.Duration, retry ...Retry) ([]byte, error)
- func (c *Conn) RemoteAddr() net.Addr
- func (c *Conn) Send(data []byte, retry ...Retry) error
- func (c *Conn) SendPkg(data []byte, retry ...Retry) error
- func (c *Conn) SendPkgWithTimeout(data []byte, timeout time.Duration, retry ...Retry) error
- func (c *Conn) SendRecv(data []byte, receive int, retry ...Retry) ([]byte, error)
- func (c *Conn) SendRecvPkg(data []byte, retry ...Retry) ([]byte, error)
- func (c *Conn) SendRecvPkgWithTimeout(data []byte, timeout time.Duration, retry ...Retry) ([]byte, error)
- func (c *Conn) SendRecvWithTimeout(data []byte, receive int, timeout time.Duration, retry ...Retry) ([]byte, error)
- func (c *Conn) SendWithTimeout(data []byte, timeout time.Duration, retry ...Retry) error
- func (c *Conn) SetDeadline(t time.Time) error
- func (c *Conn) SetRecvBufferWait(d time.Duration)
- func (c *Conn) SetRecvDeadline(t time.Time) error
- func (c *Conn) SetSendDeadline(t time.Time) error
- type Retry
- type Server
Constants ¶
View Source
const ( // 允许最大的简单协议包大小(byte), 15MB PKG_MAX_SIZE = 0xFFFFFF // 消息包头大小: "总长度"3字节+"校验码"4字节 PKG_HEADER_SIZE = 7 )
Variables ¶
This section is empty.
Functions ¶
func NewNetConn ¶
创建标准库UDP链接操作对象
func SendPkgWithTimeout ¶ added in v1.6.7
简单协议: (面向短链接)带超时时间的数据发送
func SendRecvPkg ¶ added in v1.6.7
简单协议: (面向短链接)发送数据并等待接收返回数据
Types ¶
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
封装的链接对象
func (*Conn) RecvPkgWithTimeout ¶ added in v1.6.7
简单协议: 带超时时间的消息包获取
func (*Conn) RecvWithTimeout ¶
带超时时间的数据获取
func (*Conn) RemoteAddr ¶
不能使用c.conn.RemoteAddr(),其返回为nil, 这里使用c.raddr获取远程连接地址。
func (*Conn) SendPkg ¶ added in v1.6.7
根据简单协议发送数据包。 简单协议数据格式:总长度(24bit)|校验码(32bit)|数据(变长)。 注意: 1. "总长度"包含自身3字节及"校验码"4字节。 2. 由于"总长度"为3字节,并且使用的BigEndian字节序,因此最后返回的buffer使用了buffer[1:]。
func (*Conn) SendPkgWithTimeout ¶ added in v1.6.7
简单协议: 带超时时间的数据发送
func (*Conn) SendRecvPkg ¶ added in v1.6.7
简单协议: 发送数据并等待接收返回数据
func (*Conn) SendRecvPkgWithTimeout ¶ added in v1.6.7
func (c *Conn) SendRecvPkgWithTimeout(data []byte, timeout time.Duration, retry ...Retry) ([]byte, error)
简单协议: 发送数据并等待接收返回数据(带返回超时等待时间)
func (*Conn) SendRecvWithTimeout ¶
func (c *Conn) SendRecvWithTimeout(data []byte, receive int, timeout time.Duration, retry ...Retry) ([]byte, error)
发送数据并等待接收返回数据(带返回超时等待时间)
func (*Conn) SendWithTimeout ¶
带超时时间的数据发送
func (*Conn) SetRecvBufferWait ¶
读取全部缓冲区数据时,读取完毕后的写入等待间隔,如果超过该等待时间后仍无可读数据,那么读取操作返回。 该时间间隔不能设置得太大,会影响Recv读取时长(默认为1毫秒)。
Click to show internal directories.
Click to hide internal directories.