socketTask.lua 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. --- 模块功能:socket短连接飞行模式功能测试
  2. -- @author openLuat
  3. -- @module socketShortConnectionFlymode.socketTask
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2018.03.27
  7. module(...,package.seeall)
  8. require"socket"
  9. --启动socket客户端任务
  10. sys.taskInit(
  11. function()
  12. while true do
  13. if not socket.isReady() then
  14. --等待网络环境准备就绪,超时时间是5分钟
  15. sys.waitUntil("IP_READY_IND",300000)
  16. end
  17. if socket.isReady() then
  18. --创建一个socket tcp客户端
  19. local socketClient = socket.tcp()
  20. --执行socket connect动作,最多重试3次
  21. local connectCnt = 0
  22. while not socketClient:connect("180.97.80.55","12415") do
  23. connectCnt = connectCnt+1
  24. sys.wait(2000)
  25. if connectCnt==3 then break end
  26. end
  27. if connectCnt~=3 then
  28. if socketClient:send("heart data\r\n") then
  29. result,data = socketClient:recv(5000)
  30. if result then
  31. --TODO:处理收到的数据data
  32. log.info("socketTask.recv",data)
  33. end
  34. end
  35. end
  36. --断开socket连接
  37. socketClient:close()
  38. sys.wait(2000)
  39. end
  40. --进入飞行模式,20秒之后,退出飞行模式
  41. net.switchFly(true)
  42. sys.wait(20000)
  43. net.switchFly(false)
  44. end
  45. end
  46. )