Hi,
I’ve been trying to get Corona to talk to my Processing sketch with sucesss thanks to the code Matthew Pringle made available (below). however, I’m unsure how to send realtime messages.
How would I proceed to have Corona send new messages say when a button is pressed?
Thanks!
local socket = require("socket");
local tcpServer;
local function createTCPServer( port )
-- Create Socket
local tcpServerSocket, err = socket.tcp();
local backlog = 5; -- Max number of accepted connections to server
-- Check Socket
if tcpServerSocket == nil then
return nil, err;
end
-- Allow Address Reuse
tcpServerSocket:setoption( "reuseaddr" , true );
-- Bind Socket
local res, err = tcpServerSocket:bind( "\*" , port );
if res == nil then
return nil, err;
end
-- Check Connection
res, err = tcpServerSocket:listen( backlog );
if res == nil then
return nil , err;
end
-- Return Server
return tcpServerSocket;
end
local function runTCPServer()
local tcpClient, tcpClientMessage;
local completeMessage = "";
-- Set Timeout
tcpServer:settimeout(0); -- Additional delay between each socket listen event.
-- Set Client
tcpClient, \_ = tcpServer:accept();
-- Get Message
if tcpClient then
-- The max allowed time between messages is 10ms, after which the sender is
-- considered to have finished sending data.
tcpClient:settimeout(.01);
while true do
tcpClientMessage, \_ = tcpClient:receive();
if tcpClientMessage == nil then
break;
end
--print("Message: " .. tcpClientMessage);
completeMessage = completeMessage .. "\n" .. tcpClientMessage;
end
-- Get rid of the first char ('\n') which was manually inserted.
completeMessage = completeMessage:sub(2);
tcpClient:send(20);
tcpClient:close();
else
-- Error
end
end
-- Make sure to enable port forwarding for port 8080 on your router, and enable
-- inbound + outbound for port 8080 on your Windows/Mac firewall.
tcpServer , \_ = createTCPServer("8080");
Runtime:addEventListener( "enterFrame" , runTCPServer);
-- tcpServer.close() is done on program exit. Call the close method manually
-- if you're turning off server.
Alex [import]uid: 66618 topic_id: 19728 reply_id: 319728[/import]
[import]uid: 66618 topic_id: 19728 reply_id: 76405[/import]