socket大致流程
2019-02-15 本文已影响0人
_我不是程序员
(C++对苹果的socket库进行了二次封装,生成一个新的socket类,我们就使用这个socket类。基本步骤就是:1先设置需要连接的IP地址和端口号,同时设置一些连接成功,错误,中断的回调函数,已经连接超时时间等参数。2接下来创建一个新的线程进行socket连接,连接成功,失败或中断都会设置当前的连接状态。连接的同时会创建一个计时器,每桢会根据当前的连接状态进行不同的操作,连接失败或中断则进行重新连接。3连接成功之后在socket成功的状态下执行一个无限循环,在循环当中执行一个recieve的操作,从来接受后端推送的消息,当接受到新的推送后,会更新最新的数据,刚才创建的计时器检测到该数据改变后会调用lua注册在c中的函数执行对应得操作。
客户端也可以调用socket的send函数执行对应发送数据。
因为socket是长连接所以需要确定是否在连接状态,lua 中的 在连接socket成功后 会启动一个定时器,没间隔N秒调用一次socket:send()函数发送心跳包,以确定socket在连接状态,若过N秒后没有得到后端回复则认为断开连接,然后重新连接,若得到后端回复则认为在连接状态,然后启动一下一个定时器N秒后再次发送心跳包。)