从 Cocos2d-Lua-Community 4.0.1 开始提供。
LuaSocket配合SimpleTCP的封装,已可适应大部分应用情况,不过依然有不足的地方:
AsyncTCP 意在替代SimpleTCP,提供一个简洁的异步TCP通道。
创建实例
self.asyncTCP = AsyncTCP:create()
设置事件回调方法
self.asyncTCP:setEventCB(handler(self, self.onTCPEvent))
连接服务器
self.asyncTCP:open("127.0.0.1", 1234, 5)
参数1:服务器地址,参数2:服务器端口,参数3: 连接超时时间(秒)
主动断开连接
self.asyncTCP:close()
断开是异步操作,需要等待EVENT_CLOSED事件才能进行下一步操作。
发送数据(对象方法)
self.asyncTCP:send("Hello AsyncTCP")
state状态说明:
-- sync from AsyncTCP.h
local EVENT_CONNECTING = 0
local EVENT_FAILED = 1
local EVENT_CONNECTED = 2
local EVENT_CLOSED = 3
local EVENT_DATA = 4
function TestCase:onTCPEvent(state, data)
if state == EVENT_CONNECTING then
print("** AsyncTCP connecting **")
elseif state == EVENT_FAILED then
print("** AsyncTCP failed **")
self.asyncTCP = nil
elseif state == EVENT_CONNECTED then
self.asyncTCP:send("Hello AsyncTCP")
elseif state == EVENT_DATA then
print(data)
elseif state == EVENT_CLOSED then
print("** AsyncTCP closed **")
self.asyncTCP = nil
end
end