summaryrefslogtreecommitdiff
path: root/tests/modules/socket/sched_udp/echo_server.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tests/modules/socket/sched_udp/echo_server.lua')
-rw-r--r--tests/modules/socket/sched_udp/echo_server.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/modules/socket/sched_udp/echo_server.lua b/tests/modules/socket/sched_udp/echo_server.lua
new file mode 100644
index 000000000..fd2a8d96d
--- /dev/null
+++ b/tests/modules/socket/sched_udp/echo_server.lua
@@ -0,0 +1,22 @@
+import("core.base.socket")
+import("core.base.scheduler")
+
+function _listen(addr, port)
+ local sock = socket.udp()
+ sock:bind(addr, port)
+ while true do
+ print("%s: recv in %s:%d ..", sock, addr, port)
+ local recv, data, peer_addr, peer_port = sock:recvfrom(8192, {block = true})
+ print("%s: recv %d bytes from: %s:%d", sock, recv, peer_addr, peer_port)
+ if data then
+ data:dump()
+ sock:sendto(data, peer_addr, peer_port)
+ end
+ end
+ sock:close()
+end
+
+function main()
+ scheduler.co_start(_listen, "127.0.0.1", 9001)
+ scheduler.runloop()
+end