cocos2dx引擎 封装的均为单进程,为了游戏性能的需要
下面将尝试使用C++代码开辟出一条线程,让其执行函数:
if (result) // 判断
{
CCLOG("connect to server success!");
//开启新线程,在子线程中,接收数据
std::thread recvThread = std::thread(&HelloWorld::receiveData, this);
recvThread.detach(); //从主线程分离
}
执行的函数:
/接收数据
void HelloWorld::receiveData()
{
//因为是强联网
//所以可以一直检测服务器是否有数据传来
while (true)
{
//接收数据 Revc
char data[512] = "";
int result = socket.Recv(data, 512, 0);
CCLOG("%d", result);
//与服务器的连接断开了
if (result <= 0)
{
break;
}
CCLOG("%s", data);
}
//关闭连接
socket.Close();
}