| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- -- netlab.luatos.com上打开TCP,然后修改IP和端口号,自动回复netlab下发的数据,自收自发测试
- local server_ip = "152.70.80.204"
- local server_port = 55619
- local UDP_port = 37834
- local ssl_port = 35528
- local rxbuf = zbuff.create(8192)
- local function netCB(netc, event, param)
- if param ~= 0 then
- sys.publish("socket_disconnect")
- return
- end
- if event == socket.LINK then
- elseif event == socket.ON_LINE then
- socket.tx(netc, "hello,luatos!")
- elseif event == socket.EVENT then
- socket.rx(netc, rxbuf)
- socket.wait(netc)
- if rxbuf:used() > 0 then
- log.info("收到", rxbuf:toStr(0,rxbuf:used()):toHex())
- log.info("发送", rxbuf:used(), "bytes")
- socket.tx(netc, rxbuf)
- end
- rxbuf:del()
- elseif event == socket.TX_OK then
- socket.wait(netc)
- log.info("发送完成")
- elseif event == socket.CLOSED then
- sys.publish("socket_disconnect")
- end
- end
- local function socketTask()
- local netc = socket.create(nil, netCB)
- socket.debug(netc, true)
- socket.config(netc, nil, nil, nil, 300, 5, 6) --开启TCP保活,防止长时间无数据交互被运营商断线
- while true do
- local succ, result = socket.connect(netc, server_ip, server_port)
- if not succ then
- log.info("未知错误,5秒后重连")
- else
- local result, msg = sys.waitUntil("socket_disconnect")
- end
- log.info("服务器断开了,5秒后重连")
- socket.close(netc)
- log.info(rtos.meminfo("sys"))
- sys.wait(5000)
- end
- end
- local function UDPTask()
- local netc = socket.create(nil, netCB)
- socket.debug(netc, true)
- socket.config(netc, nil, true, nil, 300, 5, 6) --开启TCP保活,防止长时间无数据交互被运营商断线
- while true do
- local succ, result = socket.connect(netc, server_ip, UDP_port)
- if not succ then
- log.info("未知错误,5秒后重连")
- else
- local result, msg = sys.waitUntil("socket_disconnect")
- end
- log.info("服务器断开了,5秒后重连")
- socket.close(netc)
- log.info(rtos.meminfo("sys"))
- sys.wait(5000)
- end
- end
- local function SSLTask()
- local netc = socket.create(nil, netCB)
- socket.debug(netc, true)
- socket.config(netc, nil, nil, true, 300, 5, 6) --开启TCP保活,防止长时间无数据交互被运营商断线
- while true do
- local succ, result = socket.connect(netc, server_ip, ssl_port)
- if not succ then
- log.info("未知错误,5秒后重连")
- else
- local result, msg = sys.waitUntil("socket_disconnect")
- end
- log.info("服务器断开了,5秒后重连")
- socket.close(netc)
- log.info(rtos.meminfo("sys"))
- sys.wait(5000)
- end
- end
- function socketDemo()
- sys.taskInit(socketTask)
- end
- function UDPDemo()
- sys.taskInit(UDPTask)
- end
- function SSLDemo()
- sys.taskInit(SSLTask)
- end
|