Documentation ¶
Overview ¶
包gudp提供了UDP服务器和客户端实现。 md5:ebe4dd90f0f46a82
Index ¶
- Constants
- func GetFreePort() (port int, err error)
- func GetFreePorts(count int) (ports []int, err error)
- func MustGetFreePort() (port int)
- func NewNetConn(remoteAddress string, localAddress ...string) (*net.UDPConn, error)
- func Send(address string, data []byte, retry ...X结构_Retry) error
- func SendRecv(address string, data []byte, receive int, retry ...X结构_Retry) ([]byte, error)
- type X结构_Conn
- func (c *X结构_Conn) Recv(buffer int, retry ...X结构_Retry) ([]byte, error)
- func (c *X结构_Conn) RecvWithTimeout(length int, timeout time.Duration, retry ...X结构_Retry) (data []byte, err error)
- func (c *X结构_Conn) RemoteAddr() net.Addr
- func (c *X结构_Conn) Send(data []byte, retry ...X结构_Retry) (err error)
- func (c *X结构_Conn) SendRecv(data []byte, receive int, retry ...X结构_Retry) ([]byte, error)
- func (c *X结构_Conn) SendRecvWithTimeout(data []byte, receive int, timeout time.Duration, retry ...X结构_Retry) ([]byte, error)
- func (c *X结构_Conn) SendWithTimeout(data []byte, timeout time.Duration, retry ...X结构_Retry) (err error)
- func (c *X结构_Conn) SetBufferWaitRecv(d time.Duration)
- func (c *X结构_Conn) SetDeadline(t time.Time) (err error)
- func (c *X结构_Conn) SetDeadlineRecv(t time.Time) (err error)
- func (c *X结构_Conn) SetDeadlineSend(t time.Time) (err error)
- type X结构_Retry
- type X结构_Server
Examples ¶
Constants ¶
const (
// X常量_FreePortAddress 标记服务器使用随机的空闲端口进行监听。 md5:16e8ca0633c4a135
X常量_FreePortAddress = ":0"
)
Variables ¶
This section is empty.
Functions ¶
func GetFreePort ¶
GetFreePort 获取并返回一个空闲的端口号。 md5:52dbf7a2d6e71da6
Example ¶
package main import ( "fmt" gudp "gitee.com/go_888/goframe/net/gudp" ) func main() { fmt.Println(gudp.GetFreePort()) // May Output: // 57429 <nil> }
Output:
func GetFreePorts ¶
GetFreePorts 获取并返回指定数量的空闲端口。 md5:ea99fb15b5bbc0fb
Example ¶
package main import ( "fmt" gudp "gitee.com/go_888/goframe/net/gudp" ) func main() { fmt.Println(gudp.GetFreePorts(2)) // May Output: // [57743 57744] <nil> }
Output:
func MustGetFreePort ¶
func MustGetFreePort() (port int)
MustGetFreePort 的行为与 GetFreePort 相似,但如果发生任何错误,则会引发恐慌。 md5:20b57c89fd162890
func NewNetConn ¶
NewNetConn 创建并返回一个具有给定地址的 *net.UDPConn。 md5:7327f361f04568ff
Types ¶
type X结构_Conn ¶
type X结构_Conn struct { *net.UDPConn // 底层UDP连接。 md5:a4de01bc082c3b97 // contains filtered or unexported fields }
X结构_Conn 处理 UDP 连接。 md5:3d72ff914b3663e1
func NewConn ¶
NewConn 创建到 `remoteAddress` 的 UDP 连接。 可选参数 `localAddress` 指定连接的本地地址。 md5:d5e06df7ea2ee28d
func NewConnByNetConn ¶
NewConnByNetConn 使用给定的 *net.UDPConn 对象创建一个UDP连接对象。 md5:8cbe128848b49656
func (*X结构_Conn) Recv ¶
Recv 从远程地址接收并返回数据。 参数 `buffer` 用于自定义接收缓冲区大小。如果 `buffer` <= 0,将使用默认的缓冲区大小,即1024字节。
UDP协议存在分包边界,如果指定的缓冲区大小足够大,我们可以接收到一个完整的数据包。非常重要的是,必须一次性接收完整个包,否则剩下的包数据将会丢失。 md5:190b81cc02f9d449
func (*X结构_Conn) RecvWithTimeout ¶
func (c *X结构_Conn) RecvWithTimeout(length int, timeout time.Duration, retry ...X结构_Retry) (data []byte, err error)
RecvWithTimeout 带超时限制地从远程地址读取数据。 md5:9e229854a65f6de2
func (*X结构_Conn) RemoteAddr ¶
RemoteAddr 返回当前UDP连接的远程地址。 请注意,它不能使用c.conn.RemoteAddr(),因为该值为nil。 md5:0a785ae4cb967a81
func (*X结构_Conn) SendRecvWithTimeout ¶
func (c *X结构_Conn) SendRecvWithTimeout(data []byte, receive int, timeout time.Duration, retry ...X结构_Retry) ([]byte, error)
SendRecvWithTimeout 向连接写入数据,并在超时时间内读取响应。 md5:6aa7751868598fb2
func (*X结构_Conn) SendWithTimeout ¶
func (c *X结构_Conn) SendWithTimeout(data []byte, timeout time.Duration, retry ...X结构_Retry) (err error)
SendWithTimeout 在连接中写入数据,并设置超时时间。 md5:d15d51d6004b2a6a
func (*X结构_Conn) SetBufferWaitRecv ¶
SetBufferWaitRecv 设置从连接读取所有数据时的缓冲等待超时时间。 等待时间不能过长,否则可能会延迟从远程地址接收数据。 md5:54992dd21ce2360a
func (*X结构_Conn) SetDeadline ¶
SetDeadline 设置与连接相关的读写超时截止时间。 md5:e0438bc956760556
func (*X结构_Conn) SetDeadlineRecv ¶
SetDeadlineRecv 设置与连接关联的读取截止时间。 md5:763094b16fe580fe
type X结构_Server ¶
type X结构_Server struct {
// contains filtered or unexported fields
}
X结构_Server是UDP服务器。 md5:34c72ea6deda36f9
func GetServer ¶
func GetServer(name ...interface{}) *X结构_Server
GetServer 创建并返回一个给定名称的UDP服务器实例。 md5:c822bb20e355a198
func NewServer ¶
func NewServer(address string, handler func(*X结构_Conn), name ...string) *X结构_Server
NewServer 创建并返回一个UDP服务器。 可选参数`name`用于指定服务器的名称,该名称可以用于 GetServer 函数来检索其实例。 md5:752020b7ca7ce4b2
func (*X结构_Server) Close ¶
func (s *X结构_Server) Close() (err error)
Close 关闭连接。 它将使服务器立即关闭。 md5:251649bd57732e67
func (*X结构_Server) GetListenedAddress ¶
func (s *X结构_Server) GetListenedAddress() string
GetListenedAddress 获取并返回当前服务器所监听的地址字符串。 md5:51d352ffec9dc329
func (*X结构_Server) GetListenedPort ¶
func (s *X结构_Server) GetListenedPort() int
GetListenedPort 获取并返回当前服务器监听的其中一个端口。 md5:98e33a51d8d8309c
func (*X结构_Server) SetAddress ¶
func (s *X结构_Server) SetAddress(address string)
SetAddress 设置UDP服务器的地址。 md5:7159be88401e01c8
func (*X结构_Server) SetHandler ¶
func (s *X结构_Server) SetHandler(handler func(*X结构_Conn))
SetHandler 设置UDP服务器的连接处理器。 md5:734c7ee9adee69b0