summaryrefslogtreecommitdiff
path: root/tests/modules/socket
diff options
context:
space:
mode:
authorruki <[email protected]>2019-12-19 22:28:54 +0800
committerruki <[email protected]>2019-12-19 08:53:26 +0800
commit3e67c61cd338e9ad214590d24e6ad506ce5b57f6 (patch)
tree5b4ad815e7431b5740fb5805abd97e8239615ca0 /tests/modules/socket
parent890b6c9341f463044df04cc76d16f4a56a4707c5 (diff)
add sched_udp tests
Diffstat (limited to 'tests/modules/socket')
-rw-r--r--tests/modules/socket/sched_udp/echo_client.lua19
-rw-r--r--tests/modules/socket/sched_udp/echo_server.lua22
2 files changed, 41 insertions, 0 deletions
diff --git a/tests/modules/socket/sched_udp/echo_client.lua b/tests/modules/socket/sched_udp/echo_client.lua
new file mode 100644
index 000000000..7ba49042c
--- /dev/null
+++ b/tests/modules/socket/sched_udp/echo_client.lua
@@ -0,0 +1,19 @@
+import("core.base.socket")
+import("core.base.scheduler")
+
+function _session(addr, port, data)
+ local sock = socket.udp()
+ local send = sock:sendto(data or "hello xmake!", addr, port, {block = true})
+ print("%s: send to %s:%d %d bytes!", sock, addr, port, send)
+ local recv, data, peer_addr, peer_port = sock:recvfrom(8112, {block = true})
+ if recv > 0 then
+ print("%s: recv %d bytes from %s:%d", sock, recv, peer_addr, peer_port)
+ data:dump()
+ end
+ sock:close()
+end
+
+function main(data)
+ scheduler.co_start(_session, "127.0.0.1", 9001, data)
+ scheduler.runloop()
+end
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