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) while true do -- local sendBuf = thread:demand(3) -- socket:send(sendBuf) local buf = socket:receive() thread:send(2, buf) end ]] local x = 30 local y = 30 jin.core.onLoad = function() thread = jin.thread.Thread("asynReceive", asynReceive) jin.net.init() socket = jin.net.Socket("TCP", "127.0.0.1", 8809) 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 i = 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 -- local buf = jin.net.Buffer(0) -- buf:append(x) -- buf:append(y) -- thread:send(3, buf) end jin.core.onDraw = function() jin.graphics.circle("fill", x, y, 12) end