📄 activclient.cpp
字号:
// ActivClient.cpp: implementation of the ActivClient class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ccams.h"
#include "ActivClient.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
ActivClient::ActivClient( int nGrow )
{
m_caList.SetSize(0, nGrow);
ReSet();
}
ActivClient::~ActivClient()
{
}
//===============================================================
// 函 数 名:IsOnLine
// 功能描述:检测指定主机是否活动
// 输入参数: 主机IP地址: ip
// 返回参数: 主机在 m_caList 中对应的序号
// 创建日期:04-7-18
// 修改日期:04-7-20
// 作 者:郑富强
// 附加说明: 成功则返回序号, 否则返回 -1
//===============================================================
int ActivClient::IsOnLine( LPCTSTR ip )
{
CString str = ip;
int count = m_caList.GetSize();
int i = 0;
while ( i < count )
{
if ( m_caList[i] == str )
return i;
i++;
}
return -1;
}
//===============================================================
// 函 数 名:AddClient
// 功能描述:填加主机, 同时设置该主机对应的计数器
// 输入参数: 新增主机的IP地址: ip
// 返回参数: 执行成功则是新增主机在 m_caList 中对应的序号,否则 -1
// 创建日期:04-7-18
// 修改日期:04-7-20
// 作 者:郑富强
// 附加说明: 主机第一次连接时调用此函数, 填加进当前活动主机列表
//===============================================================
int ActivClient::AddClient( LPCTSTR ip )
{
// 如果存在, 则返回
if ( IsOnLine(ip) != -1 )
return -1;
m_caList.InsertAt( m_caList.GetSize(), ip ); // 准备插入, 不用函数 Add
for ( int i=0; i<5; i++ )
m_nDataSum[m_caList.GetSize()-1][i] = 0;
return m_caList.GetSize()-1;
}
//===============================================================
// 函 数 名:AddClient
// 功能描述:删除主机
// 输入参数: 新增主机的IP地址: ip
// 返回参数: 执行成功则是新增主机在 m_caList 中对应的序号,否则 -1
// 创建日期:04-7-18
// 修改日期:04-7-20
// 作 者:郑富强
// 附加说明: 主机退出时调用此函数
//===============================================================
int ActivClient::RemoveClient( LPCSTR ip )
{
int index = IsOnLine( ip );
if ( index >= 0 )
{
m_caList.RemoveAt( index );
// 数据前作相应移位
for ( int i=index; i<m_caList.GetSize(); i++ )
{
for ( int j=0; j<5; j++ )
m_nDataSum[index][i] = m_nDataSum[index+1][i];
}
return index;
}
return -1;
}
//===============================================================
// 函 数 名:GetCount
// 功能描述:求当前活动主机列表中的主机数目
// 输入参数: void
// 返回参数: 主机数目
//===============================================================
int ActivClient::GetCount()
{
return m_caList.GetSize();
}
//===============================================================
// 函 数 名:RemoveAll
// 功能描述:清空当前活动主机列表
//===============================================================
void ActivClient::RemoveAll()
{
m_caList.RemoveAll();
ReSet();
}
//===============================================================
// 函 数 名:ReSet
// 功能描述:把所有当前活动主机计数器置零
//===============================================================
void ActivClient::ReSet()
{
for ( int i=0; i<MAXCLIENTNUM; i++ )
for ( int j=0; j<5; j++ )
m_nDataSum[i][j] = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -