udp类

package
v0.0.0-...-782a3f7 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

包gudp提供了UDP服务器和客户端实现。 md5:ebe4dd90f0f46a82

Index

Examples

Constants

View Source
const (
	// X常量_FreePortAddress 标记服务器使用随机的空闲端口进行监听。 md5:16e8ca0633c4a135
	X常量_FreePortAddress = ":0"
)

Variables

This section is empty.

Functions

func GetFreePort

func GetFreePort() (port int, err error)

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

func GetFreePorts(count int) (ports []int, err error)

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

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

NewNetConn 创建并返回一个具有给定地址的 *net.UDPConn。 md5:7327f361f04568ff

func Send

func Send(address string, data []byte, retry ...X结构_Retry) error

Send 使用UDP连接向`address`发送数据,然后关闭连接。 注意,它用于短连接用途。 md5:3d373f3db04ae03d

func SendRecv

func SendRecv(address string, data []byte, receive int, retry ...X结构_Retry) ([]byte, error)

SendRecv 使用UDP连接向`address`写入数据,读取响应后关闭连接。 注意,它用于短暂连接的场景。 md5:f88304194d59603d

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

func NewConn(remoteAddress string, localAddress ...string) (*X结构_Conn, error)

NewConn 创建到 `remoteAddress` 的 UDP 连接。 可选参数 `localAddress` 指定连接的本地地址。 md5:d5e06df7ea2ee28d

func NewConnByNetConn

func NewConnByNetConn(udp *net.UDPConn) *X结构_Conn

NewConnByNetConn 使用给定的 *net.UDPConn 对象创建一个UDP连接对象。 md5:8cbe128848b49656

func (*X结构_Conn) Recv

func (c *X结构_Conn) Recv(buffer int, retry ...X结构_Retry) ([]byte, error)

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

func (c *X结构_Conn) RemoteAddr() net.Addr

RemoteAddr 返回当前UDP连接的远程地址。 请注意,它不能使用c.conn.RemoteAddr(),因为该值为nil。 md5:0a785ae4cb967a81

func (*X结构_Conn) Send

func (c *X结构_Conn) Send(data []byte, retry ...X结构_Retry) (err error)

Send 将数据写入远程地址。 md5:445009019bd4a1a8

func (*X结构_Conn) SendRecv

func (c *X结构_Conn) SendRecv(data []byte, receive int, retry ...X结构_Retry) ([]byte, error)

SendRecv 向连接写入数据并阻塞读取响应。 md5:8416afe592163603

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

func (c *X结构_Conn) SetBufferWaitRecv(d time.Duration)

SetBufferWaitRecv 设置从连接读取所有数据时的缓冲等待超时时间。 等待时间不能过长,否则可能会延迟从远程地址接收数据。 md5:54992dd21ce2360a

func (*X结构_Conn) SetDeadline

func (c *X结构_Conn) SetDeadline(t time.Time) (err error)

SetDeadline 设置与连接相关的读写超时截止时间。 md5:e0438bc956760556

func (*X结构_Conn) SetDeadlineRecv

func (c *X结构_Conn) SetDeadlineRecv(t time.Time) (err error)

SetDeadlineRecv 设置与连接关联的读取截止时间。 md5:763094b16fe580fe

func (*X结构_Conn) SetDeadlineSend

func (c *X结构_Conn) SetDeadlineSend(t time.Time) (err error)

SetDeadlineSend 设置当前连接的发送截止期限。 md5:9f0d98d0e6beda95

type X结构_Retry

type X结构_Retry struct {
	Count    int           // Max retry count.
	Interval time.Duration // Retry interval.
}

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) Run

func (s *X结构_Server) Run() error

Run 开始监听UDP连接。 md5:582eb8bc9f8281c9

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

Jump to

Keyboard shortcuts

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