print("Startup!") local constants = require("constants") local rpc = require("rpc") local socket = require("socket") local v1_message = {} require("clientid")(v1_message) require("world")(v1_message) local server = assert(socket.udp()) local ip, port = nil, nil server:settimeout(nil) assert(server:setsockname("*", 42069)) if not server or not socket then error("failed to listen on socket") end while true do ::nw_next:: print("iteration start") local data data, ip, port = server:receivefrom() print("received data from " .. ip) if not data then local err_code = ip print(err_code) goto nw_next end for _, req in ipairs(rpc.parse_multiple(data)) do local response = rpc.eval(v1_message, req) if response then local payload = "poppyV001" .. constants.RS .. response print("sending response to " .. ip .. ":" .. port .. " " .. payload) server:sendto(payload, ip, port) else print(req .. " had no return value!") end end print("iteration over") end ::nw_break::