日期:2014-05-16 浏览次数:20434 次
一个基本流程
1.组装json
void NetDataSend::sendChat(char type, int playerId, int itemIndex, string infoStr){
Json::Value root;
root["type"] = type;
root["playerId"] = playerId;
root["itemIndex"] = itemIndex;
root["info"] = infoStr;
root["index"] = C_CHAT;//指令号1001
root["opIndex"] = 0;
string info =root.toStyledString();
2.发送指令
writeCmd(C_CHAT,info);
}
void NetDataSend::writeCmd(int code, string info){
const char *data=info.c_str();
int size=info.size();
CGameNetBean::sharedNetBean()->writeCmd(code,data,size);//发送指令
NetWaitManager::getInstance()->checkNetWait(code);//根据发送指令,判断是否有需要等待的回复指令,有则添加到等待列表中
}
3.实时监测接受指令
void NetDataReceive::updateNetDate()
{
if(mNetDataList.size()>0){
for(unsigned int i=0;i<mNetDataList.size();i++){
string data=mNetDataList[i];
int index=data.find("|");
int code=getCode(data,index);
string json=getJson(data, index);
4.接收到就解析指令
syncDispatch(code,json);
NetWaitManager::getInstance()->removeWaitCode(code);//移除等待列表中的指令
}