testSocket.lua 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. --- testSocket
  2. -- @module asyncSocket
  3. -- @author AIRM2M
  4. -- @license MIT
  5. -- @copyright openLuat.com
  6. -- @release 2018.10.27
  7. require "socket"
  8. module(..., package.seeall)
  9. -- 此处的IP和端口请填上你自己的socket服务器和端口
  10. local ip, port, c = "180.97.80.55", "12415"
  11. -- 异步接口演示代码
  12. local asyncClient
  13. sys.taskInit(function()
  14. while true do
  15. while not socket.isReady() do sys.wait(1000) end
  16. asyncClient = socket.tcp()
  17. while not asyncClient:connect(ip, port) do sys.wait(2000) end
  18. while asyncClient:asyncSelect() do end
  19. asyncClient:close()
  20. end
  21. end)
  22. -- 测试代码,用于发送消息给socket
  23. sys.taskInit(function()
  24. while not socket.isReady() do sys.wait(2000) end
  25. sys.wait(10000)
  26. -- 这是演示用异步接口发送数据
  27. for i = 1, 10 do
  28. asyncClient:asyncSend(string.rep("0123456789", 1024))
  29. sys.wait(500)
  30. end
  31. end)
  32. -- 测试代码,用于从socket接收消息
  33. sys.taskInit(function()
  34. local cnt = 0
  35. while not socket.isReady() do sys.wait(2000) end
  36. sys.wait(10000)
  37. -- 这是演示用异步接口直接读取服务器数据
  38. while true do
  39. local data = asyncClient:asyncRecv()
  40. cnt = cnt + #data
  41. log.info("这是服务器下发数据:", cnt, data:sub(1, 30))
  42. sys.wait(1000)
  43. end
  44. end)
  45. sys.timerLoopStart(function()
  46. log.info("打印占用的内存:", _G.collectgarbage("count"))-- 打印占用的RAM
  47. log.info("打印可用的空间", rtos.get_fs_free_size())-- 打印剩余FALSH,单位Byte
  48. end, 1000)