使用quick新建立一个项目
1.在MainScene.lua里面加入一个按钮用来测试连接服务端发送数据。
function MainScene:ctor()
cc.ui.UILabel.new({
UILabelType = 2, text = "Hello, World", size = 64})
:align(display.CENTER, display.cx, display.cy)
:addTo(self)
local item = G_createSpriteButton({
image ="skill_common.png" ,--图片 (必须)
callBack = function ( )
NetManager:send("<<<<<<<<<<<<<send test >>>>>>>>>>>")
end, --监听回调
isMove =false ,--是否移动
isSwallow = false,--是否吞噬
})
self:addChild(item)
item:setPosition(display.cx, display.cy)
end
2. 新建一个NetManager.lua文件连接服务端
local SocketTCP = require("framework.cc.net.SocketTCP")
local NetManager = class("NetManager")
NetManager.IP = "127.0.0.1"
NetManager.PORT = 1155
NetManager.KEY = ""
function NetManager:ctor( )
self._socket = SocketTCP.new(NetManager.IP,NetManager.PORT,true)
self._socket:connect()
-- 网络连接成功net
self._socket:addEventListener(SocketTCP.EVENT_CONNECTED, handler(self, self.onConnected))
-- 网络连接失败
self._socket:addEventListener(SocketTCP.EVENT_CONNECT_FAILURE, handler(self, self.onConnectedFailure))
-- 网络连接关闭
self._socket:addEventListener(SocketTCP.EVENT_CLOSE, handler(self, self.onConnectedClose))
-- 接收到信息
self._socket:addEventListener(SocketTCP.EVENT_DATA, handler(self, self.onRecvData))
end
function NetManager:getInstance( )
if not netWorker then
netWorker = NetManager.new()
end
return netWorker
end
function NetManager:onConnected( ... )
-- body
print("New onConnected !")
end
function NetManager:onConnectedFailure( ... )
print("New onConnectedFailure !")
end
function NetManager:onConnectedClose( ... )
print("New onConnectedClose !")
end
function NetManager:send( msg )
if self._socket then
self._socket:send(msg)
end
end
function NetManager:onRecvData( event )
print("---------------onRecvData----------------")
print(event.data)
end
return NetManager
启动服务器在erlang控制台启动:application:start(server).---->OK
启动客户端连接:<<<<<<<<<<start connect >>>>>>>>
accept client socket : #Port<0.523>
这时候看服务端:连接成功,很好。
点击客户端发送消息过去看能收到不,Socket :#Port<0.523>,RawData:<<"<<<<<<<send test >>>>>>>">>
很好收到了。
客户端也收到一个返回:---------------------onRecvData----------------------
erlang server bin
YES,现在只是简单的连接,以后扩张。比如加入json传输或者protobuf,加密等。客户端加入回调协议等。