Hello,
I am using UDP to send 10 strings per second to another device. When I send to older devices, it gets about one second delay per 10 seconds running. When I close and restart the socket, the delay is gone. Any idea what this could be?
Best, Philipp
[lua]local socket = require(“socket”)
— none = 1, sender = 2, receiver = 3
noneSenderReceiver = 1
mailTable = {123, 345}
mailedTable = {-100,-100}
— send
local function stopSending()
print (“ended send”)
timer.cancel (sendTimer)
sendSocket: close()
if noneSenderReceiver == 2 then
noneSenderReceiver = 1
end
end
function sendMessage()
if noneSenderReceiver ~= 2 then
noneSenderReceiver = 2
sendSocket = socket.udp()
sendSocket: settimeout(0)
sendSocket: setpeername(“226.192.1.1”, 12343)
print (“begin send”)
local function sendMessageLoop()
if noneSenderReceiver == 2 then
sendSocket: send(mailTable[1]*10000+mailTable[2])
else
stopSending()
end
end
sendTimer = timer.performWithDelay(100, sendMessageLoop, 0)
else
stopSending()
end
end
— receive
local function getIP()
local s = socket.udp()
s:setpeername(“74.125.115.104”, 80)
local ip, sock = s: getsockname()
print(“myIP:”, ip, sock)
return ip
end
local function stopReceiving()
timer.cancel (receiveTimer)
receiveSocket: close()
if noneSenderReceiver == 3 then
noneSenderReceiver = 1
end
end
function receiveMessage()
if noneSenderReceiver ~= 3 then
noneSenderReceiver = 3
receiveSocket = socket.udp()
receiveSocket: setsockname(“226.192.1.1”, 12343)
local name = receiveSocket: getsockname()
if name then --multicast available
receiveSocket:setoption( “ip-add-membership”, {multiaddr=“226.192.1.1”, interface = getIP()})
else
print (“multicast not available”)
end
receiveSocket: settimeout(0)
local function receiveMessageLoop()
if noneSenderReceiver == 3 then
local data = receiveSocket: receive()
if data then
local x = (data-data%10000)/10000
local y = data%10000
if x%1 == 0 and y%1 == 0 then
mailedTable[1] = x
mailedTable[2] = y
end
end
else
stopReceiving()
end
end
receiveTimer = timer.performWithDelay(100, receiveMessageLoop, 0)
else
stopReceiving()
end
end
[/lua]