当前位置: 首页>>代码示例>>C++>>正文


C++ CClient::SetInNormal方法代码示例

本文整理汇总了C++中CClient::SetInNormal方法的典型用法代码示例。如果您正苦于以下问题:C++ CClient::SetInNormal方法的具体用法?C++ CClient::SetInNormal怎么用?C++ CClient::SetInNormal使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CClient的用法示例。


在下文中一共展示了CClient::SetInNormal方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: OnNewClient

int32 CClientMgr::OnNewClient()
{
	if ((int32)m_ClientList.size() >= m_MaxClientNum)
		return 0;

	int32 id = 0;
	lxnet::Socketer *sock = NULL;
	CClient *newclient = NULL;
	sock = m_Listen->Accept();
	if (!sock)
		return 0;

	id = idmgr_allocid(m_IDPool);
	if (id <= 0)
	{
		log_error("为新Client分配ID失败!, id:%d", id);
		goto do_error;
	}

	newclient = client_create();
	if (!newclient)
	{
		log_error("创建Client失败!");
		goto do_error;
	}

	sock->SetRecvLimit(m_RecvDataLimit);
	sock->SetSendLimit(m_SendDataLimit);
	//sock->UseCompress();
	//sock->UseEncrypt();
	//sock->UseDecrypt();
	//sock->UseTGW();

	newclient->SetClientID(id);
	newclient->SetCon(sock);
	newclient->SetConnectTime(g_currenttime);
	newclient->SetPingTime(g_currenttime);

	m_ClientList.push_back(newclient);
	newclient->SetInNormal();

	char ip[64];
	sock->GetIP(ip, sizeof(ip) - 1);
	ip[sizeof(ip) - 1] = 0;

	//ClientConnectLog("新Client连接, ip:%s, ID:%d, 当前Client总数量:%d", ip, id, (int32)m_ClientList.size());

	assert(NULL == m_ClientSet[id]);
	m_ClientSet[id] = newclient;

	return id;

do_error:
	if (id > 0)
	{
		if (!idmgr_freeid(m_IDPool, id))
			log_error("释放ID失败!, ID:%d", id);
	}
	lxnet::Socketer::Release(sock);
	return 0;
}
开发者ID:Ding8222,项目名称:mytest,代码行数:61,代码来源:ClientMgr.cpp


注:本文中的CClient::SetInNormal方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。