io.stdout:setvbuf("no") local thread = nil local socket = nil local asynReceive = [[ io.stdout:setvbuf("no") local thread = jin.thread.getThread() local socket = thread:demand(1) local buf = nil while true do buf = socket:receive() thread:send(2, buf) end ]] jin.core.onLoad = function() jin.net.init() socket = jin.net.Socket("TCP", "127.0.0.1", 8803) thread = jin.thread.Thread("asynReceive", asynReceive) thread:start() thread:send(1, socket) end jin.core.onEvent = function(e) if e.type == "quit" then jin.core.stop() elseif e.type == "keydown" then if e.key == "Escape" then jin.core.stop() end end end local x = 0 local y = 0 jin.core.onUpdate = function(dt) if thread:receive(2) then local buf = thread:fetch(2) x, xl = buf:grabFloat(0) y, yl = buf:grabFloat(xl) end end jin.core.onDraw = function() jin.graphics.circle("fill", x, y, 12) end