⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket_activity_list_handler.cpp

📁 程序实现了在ip协议之上加一层RUDP协议
💻 CPP
字号:
// SOCKET_ACTIVITY_LIST_Handler.cpp: implementation of the SOCKET_ACTIVITY_LIST_Handler class.
//
//////////////////////////////////////////////////////////////////////

#include "SOCKET_ACTIVITY_LIST_Handler.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

SOCKET_ACTIVITY_LIST_Handler* SOCKET_ACTIVITY_LIST_Handler::pinstance = NULL;// 初始化指针



SOCKET_ACTIVITY_LIST_Handler::SOCKET_ACTIVITY_LIST_Handler()
{
	m_No_ActivityNode_STR.port = 3002;
	m_No_ActivityNode_STR.deviceID = 99;
	m_No_ActivityNode_STR.ip = 2;
//	m_No_ActivityNode_STR.password[0] = 'abc';
	strcpy(m_No_ActivityNode_STR.password,"abc");
	m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
}

SOCKET_ACTIVITY_LIST_Handler::~SOCKET_ACTIVITY_LIST_Handler()
{
	
}


/*
  factory pattern, make sure there is only one object of this class
*/
SOCKET_ACTIVITY_LIST_Handler* SOCKET_ACTIVITY_LIST_Handler::get_instance ()
{
	if (pinstance == NULL) // 是第一次调用吗?
	{
		pinstance = new SOCKET_ACTIVITY_LIST_Handler; // 创建唯一实例
	}
	return pinstance; // 唯一实例的地址
}


/*
  call data from database,and put the data in m_no_activityNode_vector
*/
bool  SOCKET_ACTIVITY_LIST_Handler::f_introduce_no_activity_node_List()
{
	struct 
	{
    int EquipId[50];
    char EquipType[50];
    long EquipIP[50]; 
	}equip;
	ConnDB();
	count = SelectEquipTable(equip.EquipId,equip.EquipType,equip.EquipIP);
	cout<<"cout="<<count<<endl;
	if(count != 0)
	{
		for(int i = 0;i < count;i++)
		{
			if(equip.EquipType[i] == '0')
			{	
				m_No_ActivityNode_STR.port = 3002;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '1')
			{	
				m_No_ActivityNode_STR.port = 3012;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '2')
			{	
				m_No_ActivityNode_STR.port = 3022;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '3')
			{	
				m_No_ActivityNode_STR.port = 3032;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '4')
			{	
				m_No_ActivityNode_STR.port = 3041;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '5')
			{	
				m_No_ActivityNode_STR.port = 3101;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '6')
			{	
				m_No_ActivityNode_STR.port = 3201;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '7')
			{	
				m_No_ActivityNode_STR.port = 3301;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '8')
			{	
				m_No_ActivityNode_STR.port = 4001;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == '9')
			{	
				m_No_ActivityNode_STR.port = 4000;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			if(equip.EquipType[i] == 'A')
			{	
				m_No_ActivityNode_STR.port = 4011;
				m_No_ActivityNode_STR.deviceID = equip.EquipId[i];
				m_No_ActivityNode_STR.ip = equip.EquipIP[i];
				m_No_ActivityNode_STR.password[0] ='0';
				m_no_activityNode_vector.push_back(m_No_ActivityNode_STR);
			}
			printf("deviceID: %d\n",m_No_ActivityNode_STR.deviceID);
			printf("ip: %d\n",m_No_ActivityNode_STR.ip);
			printf("port: %d\n",m_No_ActivityNode_STR.port);
			printf("password: %c\n",m_No_ActivityNode_STR.password[0]);
			printf("\n");
		}
		return 0;
	}
	else
		printf("Connect failed!");
		return true;
}


/*
  acorrding to ip, get the correspond activity node
*/
bool  SOCKET_ACTIVITY_LIST_Handler::f_add_activity_node_by_ip(unsigned int ip_temp)
{
	A_FIND_STR a_find;
	a_find.type=1;
	a_find.ip=ip_temp;
	
	vector<No_ActivityNode_STR>::iterator no_activity_iter;
	
	if((no_activity_iter=find(m_no_activityNode_vector.begin(),m_no_activityNode_vector.end(),a_find))!=m_no_activityNode_vector.end())
	{
		ActivityNode_STR m_ActivityNode_STR;
		m_ActivityNode_STR.deviceID = no_activity_iter->deviceID;
		m_ActivityNode_STR.ip = no_activity_iter->ip;
//		m_ActivityNode_STR.password=no_activity_iter->password;
		strcpy(m_No_ActivityNode_STR.password,no_activity_iter->password);
		m_ActivityNode_STR.port = no_activity_iter->port;
		m_activityNode_vector.push_back(m_ActivityNode_STR);
		m_no_activityNode_vector.erase(no_activity_iter);
  }
	return true;
}


/*
  acorrding to device ID, get the correspond activity node
*/
bool  SOCKET_ACTIVITY_LIST_Handler::f_add_activity_node_by_deviceID(unsigned int  deviceID)
{
	A_FIND_STR a_find;
	a_find.type=0;
	a_find.deviceID=deviceID;
	
	vector<No_ActivityNode_STR>::iterator no_activity_iter;
	
	if((no_activity_iter=find(m_no_activityNode_vector.begin(),m_no_activityNode_vector.end(),a_find))!=m_no_activityNode_vector.end())
	{
		ActivityNode_STR m_ActivityNode_STR;
		m_ActivityNode_STR.deviceID = no_activity_iter->deviceID;
		m_ActivityNode_STR.ip = no_activity_iter->ip;
//		m_ActivityNode_STR.password=no_activity_iter->password;
		strcpy(m_No_ActivityNode_STR.password,no_activity_iter->password);
		m_ActivityNode_STR.port=no_activity_iter->port;
		m_activityNode_vector.push_back(m_ActivityNode_STR);
		m_no_activityNode_vector.erase(no_activity_iter);
  }
	return true;
}


/*
  acorrding to ip, remove the correspond activity node,then put the node into 
  m_no_activityNode_vector
*/
bool  SOCKET_ACTIVITY_LIST_Handler::f_remove_activity_node_by_ip(unsigned int ip_temp)
{
	
	A_FIND_STR a_find;
	a_find.type=1;
	a_find.ip=ip_temp;
	
  vector<ActivityNode_STR>::iterator activity_iter;
	
	if((activity_iter=find(m_activityNode_vector.begin(),m_activityNode_vector.end(),a_find))!=m_activityNode_vector.end())
	{
		No_ActivityNode_STR m_no_ActivityNode_STR;
		m_no_ActivityNode_STR.deviceID = activity_iter->deviceID;
		m_no_ActivityNode_STR.ip = activity_iter->ip;
//		m_no_ActivityNode_STR.password=activity_iter->password;
		strcpy(m_No_ActivityNode_STR.password,activity_iter->password);
		m_no_ActivityNode_STR.port=activity_iter->port;
		m_no_activityNode_vector.push_back(m_no_ActivityNode_STR);
		m_activityNode_vector.erase(activity_iter);
    }
	return true;
}


/*
  acorrding to device ID, remove the correspond activity node,then put the node into 
  m_no_activityNode_vector
*/
bool  SOCKET_ACTIVITY_LIST_Handler::f_remove_activity_node_by_deviceID(unsigned int  deviceID)
{
	A_FIND_STR a_find;
	a_find.type=0;
	a_find.deviceID=deviceID;
	
	vector<ActivityNode_STR>::iterator activity_iter;
	
	if((activity_iter=find(m_activityNode_vector.begin(),m_activityNode_vector.end(),a_find))!=m_activityNode_vector.end())
	{
		No_ActivityNode_STR m_no_ActivityNode_STR;
		m_no_ActivityNode_STR.deviceID = activity_iter->deviceID;
		m_no_ActivityNode_STR.ip = activity_iter->ip;
//		m_no_ActivityNode_STR.password=activity_iter->password;
		strcpy(m_No_ActivityNode_STR.password,activity_iter->password);
		m_no_ActivityNode_STR.port=activity_iter->port;
		m_no_activityNode_vector.push_back(m_no_ActivityNode_STR);
		m_activityNode_vector.erase(activity_iter);
    }
	return true;
}


/*
  acorrding to device ID, get the correspond ip and port
  firstly check from m_activityNode_vector, if not in, check from m_no_activityNode_vector
*/
Addr_Str  SOCKET_ACTIVITY_LIST_Handler::f_Find_ip_and_port_by_deviceID(unsigned int  deviceID)
{
	Addr_Str addr_str;	
	A_FIND_STR a_find;
	a_find.type=0;
	a_find.deviceID=deviceID;
	
	vector<ActivityNode_STR>::iterator activity_iter;
	vector<No_ActivityNode_STR>::iterator no_activity_iter;
	
	if((activity_iter=find(m_activityNode_vector.begin(),m_activityNode_vector.end(),a_find))!=m_activityNode_vector.end())
	{
		addr_str.ip=activity_iter->ip;
		addr_str.port=activity_iter->port;
    }
	
	if((no_activity_iter=find(m_no_activityNode_vector.begin(),m_no_activityNode_vector.end(),a_find))!=m_no_activityNode_vector.end())
	{
		addr_str.ip=no_activity_iter->ip;
		addr_str.port=no_activity_iter->port;
    }
	
	return addr_str;
}


/*
  acorrding to device ip, get the correspond device ID 
  firstly check from m_activityNode_vector, if not in, check from m_no_activityNode_vector
*/
unsigned int  SOCKET_ACTIVITY_LIST_Handler::f_Find_deviceID_by_ip(unsigned int ip_temp)
{
	unsigned int deviceId_temp=100;   //100没找到
	A_FIND_STR a_find;
	a_find.type=1;
	a_find.ip=ip_temp;
	
	vector<ActivityNode_STR>::iterator activity_iter;
	vector<No_ActivityNode_STR>::iterator no_activity_iter;
	
	
	if((activity_iter=find(m_activityNode_vector.begin(),m_activityNode_vector.end(),a_find))!=m_activityNode_vector.end())
	{
		deviceId_temp=activity_iter->deviceID;
  }
	
	if((no_activity_iter=find(m_no_activityNode_vector.begin(),m_no_activityNode_vector.end(),a_find))!=m_no_activityNode_vector.end())
	{
		deviceId_temp=no_activity_iter->deviceID;
   }
	
	return deviceId_temp;
}


/*
  acorrding to device ID, get the correspond password
  firstly check from m_activityNode_vector, if not in, check from m_no_activityNode_vector
*/
char* SOCKET_ACTIVITY_LIST_Handler::f_Find_password_by_deviceID(unsigned int deviceID)
{
//	unsigned int password_temp=100;
	
	A_FIND_STR a_find;
	a_find.type=0;
	a_find.deviceID=deviceID;
	
	vector<ActivityNode_STR>::iterator activity_iter;
	vector<No_ActivityNode_STR>::iterator no_activity_iter;
	
	if((activity_iter=find(m_activityNode_vector.begin(),m_activityNode_vector.end(),a_find))!=m_activityNode_vector.end())
	{
//		password_temp=activity_iter->password;
		return activity_iter->password;
  }
	
	if((no_activity_iter=find(m_no_activityNode_vector.begin(),m_no_activityNode_vector.end(),a_find))!=m_no_activityNode_vector.end())
	{
//		password_temp=no_activity_iter->password;
		return no_activity_iter->password;
  }
	return 0;
}


/*
  acorrding to device ip, get the correspond password
  firstly check from m_activityNode_vector, if not in, check from m_no_activityNode_vector
*/
char*  SOCKET_ACTIVITY_LIST_Handler::f_Find_password_by_ip(unsigned int  ip_temp)
{
//	unsigned int password_temp=100;   //100没找到
	
	A_FIND_STR a_find;
	a_find.type=1;
	a_find.deviceID=ip_temp;
	
	vector<ActivityNode_STR>::iterator activity_iter;
	vector<No_ActivityNode_STR>::iterator no_activity_iter;
	
	if((activity_iter=find(m_activityNode_vector.begin(),m_activityNode_vector.end(),a_find))!=m_activityNode_vector.end())
	{
//		password_temp=activity_iter->password;
			return activity_iter->password;
  }
	
	if((no_activity_iter=find(m_no_activityNode_vector.begin(),m_no_activityNode_vector.end(),a_find))!=m_no_activityNode_vector.end())
	{
		//		password_temp=no_activity_iter->password;
		return no_activity_iter->password;
  }
	return 0;
}


/*
  get the length of m_activityNode_vector
*/
int SOCKET_ACTIVITY_LIST_Handler::f_activityNode_vector_length()
{
	return m_activityNode_vector.size();
}


/*
  get the length of m_no_activityNode_vector
*/
int SOCKET_ACTIVITY_LIST_Handler::f_no_activityNode_vector_length()
{
	return m_no_activityNode_vector.size();
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -