http://blog.chinaunix.net/uid-27194309-id-3499261.html 在页面的后面有
先在路由器上执行:
opkg install luasocket_2.0.2-3_ar71xx.ipk
udp server 例程如下:
点击(此处)折叠或打开
- -- upd-server Test
- local socket = require "socket"
- local port = 8080
- local udp = socket.udp()
- udp:settimeout(0)
- udp:setsockname('*', port) --server
- local data, msg_or_ip, port_or_nil
- local running = true
- -- the beginning of the loop proper...
- print "Beginning server loop."
- while running do
- data, msg_or_ip, port_or_nil = udp:receivefrom()
- if data then
- print("udp:receivefrom: " .. data .. msg_or_ip, port_or_nil)
- udp:sendto(data, msg_or_ip, port_or_nil)
- if data == "quit" then
- running = false
- end
- elseif msg_or_ip ~= 'timeout' then
- error("Unknown network error: "..tostring(msg))
- end
- socket.sleep(0.01)
- end
- print "Thank you."
udp client 例程如下:
点击(此处)折叠或打开
- -- upd-client Test
- local socket = require "socket"
- local address = "192.168.1.224"
- local port = 8080
- local udp = socket.udp()
- udp:settimeout(0)
- udp:setpeername(address, port)
- --udp:sendto("udp-test", address, port)
- udp:send("udp-test0n")
- udp:send("udp-test1n")
- udp:send("udp-test2n")
- print "Thank you."
用udp实现更方便的调试
- -- luasocket upd-client Test
- local socket = require "socket"
- debug = 1
- function DEBUGP(str)
- if debug == 1 then
- local server_ip = "192.168.1.224"
- local server_port = 8080
- local udp = socket.udp()
- udp:settimeout(0)
- udp:setpeername(server_ip, server_port)
- --udp:sendto("udp-test", address, port)
- udp:send(str)
- udp:close()
-
- elseif debug == 2 then
- print(str)
- end
- end
- local data1 = 101
- local data2 = 102
- local data3 = 103
- DEBUGP("test - " .. data1 .. "n")
- DEBUGP("test - " .. data2 .. "n")
- DEBUGP("test - " .. data3 .. "n")
- print "Thank you."