summaryrefslogtreecommitdiff
path: root/tests/modules/socket/sched_udp/echo_server.lua
blob: 31ca26d647eb3117e5bd5989ec0b09f5fed7c54d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import("core.base.bytes")
import("core.base.socket")
import("core.base.scheduler")

function _listen(addr, port)
    local buff = bytes(8192)
    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(buff, 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", 9091)
end