net 网络通信库

net 网络通信库

net 网络通信库

功能

net 提供 Web 服务适配、TCP、UDP、WebSocket、DNS 解析和本机网络信息能力。既可以使用 net.listen() 短写,也可以使用 net().listen()。

API 列表

API说明
net.listen启动 Web、TCP、UDP 或 WebSocket 监听服务。
net.connect建立 TCP、UDP 或 WebSocket 客户端连接。
net.resolve解析主机名并返回去重后的 IP 地址数组。
net.interfaces读取本机网络接口信息。
net.local_ip读取默认本机 IP。

示例

注意事项

  • 所有协议类型字段使用小写字符串:web、tcp、udp、ws。
  • 后台网络服务会让 VM 等待事件并分发回调。
  • TCP、UDP、WebSocket 后台 I/O 使用共享 Tokio runtime;脚本 API 仍保持同步调用表面。
  • TCP、UDP、WebSocket 监听配置支持 binary: true,on_message 回调会直接收到 Bytes,避免二进制报文提前按字符串转换。
  • 网络事件队列是有界队列,默认 BT_NET_EVENT_QUEUE=4096。队列满时不会无限堆积内存;TCP/WebSocket 消息事件会触发连接关闭,UDP 报文会被丢弃,并可通过 BT.stats().net.event_queue_rejected 观察。
  • 资源上限可通过 BT_NET_CONNECTION_LIMITBT_NET_MESSAGE_LIMITBT_NET_WRITE_QUEUEBT_NET_IDLE_TTL_MS 调整,配置错误会在第一次使用 net 能力时报错。
  • TCP、UDP、WebSocket 的常见错误会输出中文标准化信息,包括端口占用、权限不足、连接拒绝/重置、握手失败、写队列满和消息超限。
  • examples/net-stress-*.bt 提供 TCP、UDP、WebSocket 压测脚本;需要验证队列满或消息超限时,可在启动前调低 BT_NET_EVENT_QUEUEBT_NET_WRITE_QUEUEBT_NET_MESSAGE_LIMIT