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

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")

http://www.kler.cn/a/543528.html

相关文章:

  • 【安全靶场】信息收集靶场
  • Spring 项目接入 DeepSeek,分享两种超简单的方式!
  • Windows 系统 GDAL库 配置到 Qt 上
  • 单例模式详解(Java)
  • 计算机毕业设计——Springboot的简历系统
  • 云原生时代的后端开发:架构、工具与最佳实践
  • 使用Python爬虫获取淘宝item_search_tmall API接口数据
  • 压缩stl文件大小
  • Go语言开发桌面应用基础框架(wails v3)-开箱即用框架
  • 【系统架构设计师】嵌入式系统之JTAG接口
  • VSCode选择编译工具(CMake)
  • visual studio 在kylin v10上跨平台编译时c++标准库提示缺少无法打开的问题解决
  • pyside6 的QThread多个案例
  • vue开发06:前端通过webpack配置处理跨域问题
  • 大模型知识蒸馏:技术突破与应用范式重构——从DeepSeek创新看AI基础设施演进路径
  • PHP:从入门到进阶的全面指南
  • Day88:加载游戏图片
  • 2. grafana插件安装并接入zabbix
  • 酷柚易汛ERP 3.0 【2025-02-12】系统升级日志
  • Linux | 文件描述符
  • 【LeetCode】时间复杂度和空间复杂度
  • bug-ant下拉框解决下拉框跟随表单容器(指定下拉框挂载容器):getPopupContainer=“p=>p.parentNode“
  • snort3.0-ubuntu18.04 64入侵检测安装与使用ailx10ailx10​​知乎知识会员
  • LabVIEW用户界面(UI)和用户体验(UX)设计
  • Spring排序机制:接口与注解的使用
  • 据称苹果与阿里巴巴将合作为中国iPhone用户开发AI功能