BT编程语言文档

net TCP 通信

功能

TCP 通信用于可靠的长连接数据收发。当前版本支持 TCP 服务端监听和 TCP 客户端连接。

服务端语法

服务端参数

参数类型必填默认值说明
typestring固定为 tcp
bindstring监听地址,格式为 host:port
on_connectfn客户端连接后调用,参数为 client
on_messagefn收到数据后调用,参数为 client, data
on_closefn客户端关闭后调用,参数为 client
on_errorfn后台任务出错时调用,参数为 err

客户端语法

客户端参数

参数类型必填默认值说明
typestring固定为 tcp
hoststring远端主机名或 IP
portint远端端口,范围 0..65535
timeoutint0连接、读写超时时间,单位毫秒;大于 0 时生效

返回值

net.listen({type:'tcp'}) 返回 TcpServer

字段/方法类型说明
addrstring服务监听地址
typestring固定为 tcp
close()fn关闭服务,返回 true

net.connect({type:'tcp'}) 和服务端回调中的 client 都是 TcpClient

字段/方法类型说明
addrstring远端地址
typestring固定为 tcp
write(data)fn写入字符串数据,返回写入字节数
send(data)fn等同于 write(data)
read()fn读取一段数据,返回字符串
close()fn关闭连接,返回 true

注意事项

  • TCP 服务端收到的数据当前按 UTF-8 损失转换为字符串后传给 on_message
  • client.read() 单次最多读取内部缓冲区中的一段数据,当前缓冲区大小为 8192 字节。
  • write() / send() 会把参数转换为字符串后写入。
  • 服务端监听地址端口被占用时会启动失败。
  • 没有注册 on_error 时,后台错误会输出到标准错误。