diff options
| author | ruki <[email protected]> | 2019-11-28 22:34:52 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-11-28 09:29:14 +0800 |
| commit | 5419b4eb3112fbe9b43249c62f9e319518caa71e (patch) | |
| tree | 19c84c95aa945d37cfb05393b2e9f25681ebc837 /tests/modules/socket/sched_tcp/echo_server.lua | |
| parent | 6cde799f0a1ebb3151e0880299a0dce75567f764 (diff) | |
add sched_tcp/echo tests
Diffstat (limited to 'tests/modules/socket/sched_tcp/echo_server.lua')
| -rw-r--r-- | tests/modules/socket/sched_tcp/echo_server.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/modules/socket/sched_tcp/echo_server.lua b/tests/modules/socket/sched_tcp/echo_server.lua new file mode 100644 index 000000000..4ae2119cc --- /dev/null +++ b/tests/modules/socket/sched_tcp/echo_server.lua @@ -0,0 +1,40 @@ +import("core.base.socket") +import("core.base.scheduler") + +function _session(sock) + local count = 0 + local result = nil + while true do + local recv, data = sock:recv(13, {block = true}) + if recv > 0 then + result = data + sock:send(data, {block = true}) + count = count + 1 + else + break + end + end + print("%s: recv: %d, count: %d", sock, result and result:size() or 0, count) + result:dump() + sock:close() +end + +function _listen(addr, port) + + local sock = socket.bind(addr, port) + sock:listen(20) + print("%s: listening %s:%d ..", sock, addr, port) + while true do + local sock_client = sock:accept() + if sock_client then + print("%s: accepted", sock_client) + scheduler.run(_session, sock_client) + end + end + sock:close() +end + +function main() + scheduler.run(_listen, "127.0.0.1", 9001) + scheduler.runloop() +end |
