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

打印 上一主题 下一主题

主题 905|帖子 905|积分 2715

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

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

  1. iostream_tcp_create(host, port) => object
复制代码
示例

  1. var a = iostream_tcp_create("localhost", 1234);
复制代码
2.iostream_udp_create

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

  1. iostream_udp_create(host, port) => object
复制代码
示例

  1. var a = iostream_udp_create("localhost", 4000);
复制代码
完备示例

  1. //
  2. //start tcp echo server first
  3. //socat -v tcp-l:1234,fork exec:'/bin/cat'
  4. //
  5. var a = iostream_tcp_create("localhost", 1234)
  6. var b = iostream_get_ostream(a)
  7. var c = iostream_get_istream(a)
  8. assert(ostream_write_uint8(b, 1) == 1)
  9. assert(ostream_write_uint16(b, 2)== 2)
  10. assert(ostream_write_uint32(b, 3) == 4)
  11. assert(ostream_write_uint64(b, 4) == 8)
  12. assert(ostream_write_float(b, 5) == 4)
  13. assert(ostream_write_double(b, 6) == 8)
  14. assert(ostream_write_string(b, "hello\n") == 6)
  15. assert(istream_read_uint8(c) == 1)
  16. assert(istream_read_uint16(c) == 2)
  17. assert(istream_read_uint32(c) == 3)
  18. assert(istream_read_uint64(c) == 4)
  19. assert(istream_read_float(c) == 5)
  20. assert(istream_read_double(c) == 6)
  21. assert(istream_read_string(c, 6) == "hello\n")
复制代码
  1. //
  2. // start udp echo server first
  3. // ./bin/udp_recv 4000
  4. //
  5. var a = iostream_udp_create("localhost", 4000)
  6. var b = iostream_get_ostream(a)
  7. var c = iostream_get_istream(a)
  8. assert(ostream_write_uint8(b, 1) == 1)
  9. assert(ostream_write_uint16(b, 2)== 2)
  10. assert(ostream_write_uint32(b, 3) == 4)
  11. assert(ostream_write_uint64(b, 4) == 8)
  12. assert(ostream_write_float(b, 5) == 4)
  13. assert(ostream_write_double(b, 6) == 8)
  14. assert(ostream_write_string(b, "hello\n") == 6)
  15. assert(istream_read_uint8(c) == 1)
  16. assert(istream_read_uint16(c) == 2)
  17. assert(istream_read_uint32(c) == 3)
  18. assert(istream_read_uint64(c) == 4)
  19. assert(istream_read_float(c) == 5)
  20. assert(istream_read_double(c) == 6)
  21. assert(istream_read_string(c, 6) == "hello\n")
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表