本文整理汇总了C++中UserSession::Update方法的典型用法代码示例。如果您正苦于以下问题:C++ UserSession::Update方法的具体用法?C++ UserSession::Update怎么用?C++ UserSession::Update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserSession
的用法示例。
在下文中一共展示了UserSession::Update方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ConnectServer
// 重连控制连接还是数据连接
void PasClient::ConnectServer( UserSession &user, bool tcp )
{
// 更新最后一次登陆的时间
user.Update( PCC_USER_LOGIN, tcp ) ;
PccUser &pccuser = user.GetUser( tcp ) ;
// 如果TCP连接
if ( tcp ) {
pccuser._fd = _tcp_handle.connect_nonb( pccuser._srv_ip.c_str(), pccuser._srv_port, 10 ) ;
if ( pccuser._fd > 0 ) {
pccuser.SetWaitResp() ;
}
} /**else { // 数据通道
pccuser._fd = _udp_handle.connect_nonb( pccuser._srv_ip.c_str(), pccuser._srv_port, 10 ) ;
if ( pccuser._fd == -1 )
return ;
pccuser.SetWaitResp() ;
}*/
PccUser &udpuser = user.GetUser( false ) ;
udpuser.SetOffline() ;
if(udpuser._fd != NULL) {
CloseSocket(udpuser._fd);
udpuser._fd = NULL;
}
// 通过TCP通道发送注册数据通道信息
if ( ! tcp ) {
PccUser &tcpuser = user.GetUser(true) ;
char buf[1024] = {0};
sprintf( buf, "SZ P %s|%s|%d\r\n", user.GetKey(true), _ip.c_str(), _port ) ;
// 发送数据通道连接请求
SendData( tcpuser._fd, buf, strlen(buf) ) ;
//OUT_SEND( pccuser._srv_ip.c_str(), pccuser._srv_port, pccuser._username.c_str(), "fd %d, Tcp fd %d Send %s",
// pccuser._fd->_fd, tcpuser._fd->_fd, buf ) ;
}
}
示例2: OvertimeClear
BOOL LoginServer::OvertimeClear( DWORD dwDeltaTick )
{
printf(" [ LoginServer::OvertimeClear dwDeltaTick= %d ] \n", dwDeltaTick);
printf(" [ LoginServer::OvertimeClear size = %d ] \n", m_lsOvertimeTable.size());
WORD wIndex = 0;
UserSession * pSession = NULL;
for (int i = 0; i< m_lsOvertimeTable.size(); ++i) {
wIndex = m_lsOvertimeTable.front();
if ( wIndex==0 ) {
m_lsOvertimeTable.pop_front();
continue;
}
printf(" [ LoginServer::OvertimeClear wIndex = %d ] \n", wIndex);
pSession = m_pUserSession[wIndex];
if ( pSession != NULL ) {
printf(" [ LoginServer::OvertimeClear pSession = %d ] \n", pSession);
if ( pSession->Update( dwDeltaTick ) ) {
pSession->CloseSession();
}
}
m_lsOvertimeTable.pop_front();
}
}