版本:LuaSocket 3.0-rc1
限制:只能收发字符串,且接收的字符串必须以 \n 结尾。
客户端cocos2dx-lua 3.14.1
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
function socketInit()
local socket = require("socket")
print(socket._VERSION);
local host = "127.0.0.1"
local port = 10001;
G_SOCKETTCP = socket.tcp()
local n,e = G_SOCKETTCP:connect(host, port)
print("connect return:",n,e)
G_SOCKETTCP:settimeout(0)
end
function socketClose()
G_SOCKETTCP:close()
end
function socketSend(sendStr)
G_SOCKETTCP:send(sendStr)
end
function socketReceive()
local response, receive_status=G_SOCKETTCP:receive()
print("receive return:",response or "nil" ,receive_status or "nil")
if receive_status ~= "closed" then
if response then
print("Receive Message:"..response)
end
else
print("Service Closed!")
end
end
function MainScene:onCreate()
socketInit()
local delay = 0
local function receiveHandler(dt)
delay = delay + dt
if delay > 0.1 then
socketReceive()
delay= 0
end
end
self:scheduleUpdateWithPriorityLua(receiveHandler,1)
socketSend("asdf")
end
return MainScene
服务端:java netty
childhandler中加入继承SimpleChannelInboundHandler<String>的处理器,StringEncoder与StringDecoder处理器。
在发送字符串时,在末尾加\n后发送给luasocket客户端。
亲测可用。
性能未知。