当前位置: 首页 > news >正文

AWTK fscript 中的 TCP/UDP 客户端扩展函数

fscript 是 AWTK 内置的脚本引擎,开发者可以在 UI XML 文件中直接嵌入 fscript 脚本,提高开发效率。本文介绍一下 fscript 中的 TCP/UDP 客户端扩展函数。

1.iostream_tcp_create

创建 TCP 客户端输入输出流对象。


原型
iostream_tcp_create(host, port) => object
示例
var a = iostream_tcp_create("localhost", 1234);

2.iostream_udp_create

创建 UDP 客户端输入输出流对象。


原型
iostream_udp_create(host, port) => object
示例
var a = iostream_udp_create("localhost", 4000);

完整示例

//
//start tcp echo server first
//socat -v tcp-l:1234,fork exec:'/bin/cat'
//

var a = iostream_tcp_create("localhost", 1234)
var b = iostream_get_ostream(a)
var c = iostream_get_istream(a)

assert(ostream_write_uint8(b, 1) == 1)
assert(ostream_write_uint16(b, 2)== 2)
assert(ostream_write_uint32(b, 3) == 4)
assert(ostream_write_uint64(b, 4) == 8)
assert(ostream_write_float(b, 5) == 4)
assert(ostream_write_double(b, 6) == 8)
assert(ostream_write_string(b, "hello\n") == 6)

assert(istream_read_uint8(c) == 1)
assert(istream_read_uint16(c) == 2)
assert(istream_read_uint32(c) == 3)
assert(istream_read_uint64(c) == 4)
assert(istream_read_float(c) == 5)
assert(istream_read_double(c) == 6)
assert(istream_read_string(c, 6) == "hello\n")

//
// start udp echo server first
// ./bin/udp_recv 4000
//

var a = iostream_udp_create("localhost", 4000)
var b = iostream_get_ostream(a)
var c = iostream_get_istream(a)

assert(ostream_write_uint8(b, 1) == 1)
assert(ostream_write_uint16(b, 2)== 2)
assert(ostream_write_uint32(b, 3) == 4)
assert(ostream_write_uint64(b, 4) == 8)
assert(ostream_write_float(b, 5) == 4)
assert(ostream_write_double(b, 6) == 8)
assert(ostream_write_string(b, "hello\n") == 6)

assert(istream_read_uint8(c) == 1)
assert(istream_read_uint16(c) == 2)
assert(istream_read_uint32(c) == 3)
assert(istream_read_uint64(c) == 4)
assert(istream_read_float(c) == 5)
assert(istream_read_double(c) == 6)
assert(istream_read_string(c, 6) == "hello\n")

相关文章:

  • C++课程设计 运动会分数统计(含源码)
  • 打开游戏缺少C++组件怎么修复?缺少C++组件问题的解决方法
  • FastAPI 高并发与性能优化
  • XXL-Job源码分析
  • 2024春秋杯网络安全联赛冬季赛wp
  • Jenkins+gitee 搭建自动化部署
  • 基于带通滤波的camera脏污检测算法可以完全替代imatest
  • AIGC与AICG的区别解析
  • 深入理解DOM:22个核心知识点与代码示例
  • k8s worker 节点使用kubectl 命令
  • Huatuo热更新--安装HybridCLR
  • 【计算机视觉】文本识别
  • 【Java】实现后端请求接口
  • 组合的输出(信息学奥赛一本通-1317)
  • 关于防火墙运维面试题2
  • DirectShow基类文件和帮助文档
  • 【无标题】基于AIX的DB2 10.1安装配置规范
  • Qt的QTreeWidget样式设置
  • Linux进阶——防火墙
  • 【鸿蒙开发】第三十章 应用稳定性-检测、分析、优化、运维汇总
  • 赡养纠纷个案推动类案监督,检察机关保障特殊群体胜诉权
  • 泽连斯基已离开土耳其安卡拉
  • 观察|本轮印巴冲突或促使印度空军寻求更先进战机
  • 马上评|让查重回归促进学术规范的本意
  • 重庆市委原常委、政法委原书记陆克华被决定逮捕
  • 中东睿评|特朗普中东三国行:喧嚣的形式与空洞的实质