YStudio Y++

UDP类使用说明

Y++ / YStudio 开发文档 · 一点滴

UDP类 提供 UDP 数据报收发:启动(端口) 即服务端绑定收包;也可「连接」记住默认对端后 发送。无 TCP 式连接、无粘包;每包独立,回调带对端 IP/端口。

类型名必须写 UDP类。声明变量时一般会自动创建会话,多数情况不必手写 创建UDP()

TCP类 对照:可靠流式/多客户端用 TCP;短消息、广播、自定义协议用 UDP。


1. 粗暴写法

1.1 服务端:启动 → 数据到达 → 回发

UDP类 srv

函数 收到(整数 id, 文本 IP, 整数 端口, 文本 IP端口, 文本 data) {
    输出(IP端口 + " => " + data)
    srv.发送到(IP, 端口, data)     ' 回显
}

函数 主窗口.创建完毕() {
    srv.数据到达(&收到)
    如果 (srv.启动(19300, "127.0.0.1") == 假) {
        信息框(srv.错误信息, 0)
    }
}

连接 ID 固定为 1(单套接字);真正区分对端用回调里的 IP / 端口

1.2 客户端:连接默认对端 → 发送

UDP类 cli
cli.连接("127.0.0.1", 19300)
cli.发送("hello")
' 或:cli.发送到("127.0.0.1", 19300, "hello")

连接 没有握手,只记住默认对端;未 启动 时会自动绑临时端口以便收回复。


2. 使用顺序

  1. 声明 UDP类
  2. 按需:置超时 / 置最大包长 / 置广播
  3. 先注册 数据到达(及可选 数据到达字节集),再 启动
  4. 发送 / 发送到 / 广播;同步场景可用 接收
  5. 结束时 停止 / 关闭 / 重置

3. 事件(界面线程)

事件 回调形参 说明
数据到达 (整数 连接ID, 文本 IP, 整数 端口, 文本 IP端口, 文本 数据) 文本按 UTF-8 解释
数据到达字节集 (整数 连接ID, 文本 IP, 整数 端口, 文本 IP端口, 字节集 数据) 原始字节;可与文本回调同时注册

0 清除。指针仅本函数内有效。


4. 属性(只读,无括号)

属性 说明
超时 同步 接收 超时毫秒
错误信息 最近失败原因
端口 本地绑定端口
绑定地址
是否已启动 / 是否在监听 已绑定
远程IP / 远程端口 / 远程地址 连接 记住的默认对端
客户IP / 客户端口 / 客户地址 最近一包来源
最大包长 默认 65507
广播允许 SO_BROADCAST

5. 方法摘要

方法 签名 说明
启动 / 监听 (整数 端口, [文本 绑定="0.0.0.0"]) → 逻辑 绑定并异步收包
停止 / 停止监听 ()
关闭 / 重置 () 清对端与错误;重置保留事件
连接 (文本 主机, 整数 端口) → 逻辑 记住默认对端
发送 (文本)(主机, 端口, 文本) → 整数 1 参走默认对端
发送到 (主机, 端口, 文本)
发送字节集 / 发送字节集到 同理
广播 / 广播字节集 (整数 端口, 文本/字节集) 发往 255.255.255.255
接收 / 接收字节集 () 同步收一包(会短暂停异步线程)
取远程 / 取客户 见属性