Skip to content

听 ​

TCP 监听。新连接触发回调。

签名:听(端口, 处理函) 或 听(端口, 处理函, 绑定地址)

  • 默认只绑回环 127.0.0.1——只允许本机连接。要让局域网/公网访问,必须显式写地址:听(8000, 处理函, "0.0.0.0")。
  • 绑定地址是字符串:IPv4 字面量("127.0.0.1" / "0.0.0.0" / "192.168.1.10")或可解析的主机名。
  • 地址不可用(端口被占、地址非法、传了非字符串)时 听 返回失败结果,错误消息带具体地址与端口;绝不会静默回退成对外监听。
  • 参数个数不是 2 或 3 时编译期报错。
xuantie
听(8000, 函(流) {
    流.写("欢迎!\n")
})
输("按回车停止...")

上面这段只监听本机。要对外提供服务,写成 听(8000, 函(流) { ... }, "0.0.0.0")。

你可以…… ​

  • 回显服务器——回调参数就是该连接的流:
xuantie
听(8000, 函(流) {
    循 {
        设 数据 = 流.读()
        若 数据 == 空 { 断 }
        流.写("回显: " & 数据)
    }
    流.关()
})
输("按回车停止...")
  • 共享数据——回调间是真多线程并发,用全局变量或通道汇总:
xuantie
设 在线 = 0
听(8000, 函(流) {
    在线 = 在线 + 1
    流.写("当前在线: " & 在线)
    在线 = 在线 - 1
    流.关()
})
输("按回车停止...")

注意 ​

  • 听 立即返回、不挡退出:主线程跑到末尾进程就结束了,服务端末尾用 输(...) 或 循 { 时.睡(1000) } 留住主线程。
  • 没有「停止监听」原语:一旦启动就活到进程结束。
  • TCP 没有消息边界:一次 读 不等于「一条消息」(阻塞路径每次最多 4096 字节),要完整消息自己加分隔符循环拼。

相关 ​

连 · 求 · 异步

基于 VitePress 静态构建 · 文档内容与仓库 GUIDE/ 同源

玄铁玄铁 XUANTIE · 中文系统级编程语言MARK 玄·折 120×120 · STROKE 8 · NO CURVES