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