📄 arwinnetfactory_t.cpp
字号:
#include "ArWinNetFactory_T.h"
#include "ArWinServer_T.h"
#include "ArWinClient_T.h"
#include "ArWinNetTool_T.h"
#include <windows.h>
#include <stdio.h>
//-----------------------------------------------------------------------------------
ArWinNetFactory_T::ArWinNetFactory_T()
{
m_pNetTool = NULL;
Initial();
m_ServerList.clear();
m_ClientList.clear();
m_bHasDestroy = false;
}
//-----------------------------------------------------------------------------------
ArWinNetFactory_T::~ArWinNetFactory_T()
{
}
//-----------------------------------------------------------------------------------
ArServer_T* __stdcall ArWinNetFactory_T::CreateServer(void* pPara)
{
ArWinServer_T* pServer = new ArWinServer_T(pPara);
if(pServer)
{
m_ServerList.push_back(pServer);
}
return pServer;
}
//-----------------------------------------------------------------------------------
ArClient_T* __stdcall ArWinNetFactory_T::CreateClient(void* pPara)
{
ArWinClient_T* pClient = new ArWinClient_T(pPara);
if(pClient)
{
m_ClientList.push_back(pClient);
}
return pClient;
}
//-----------------------------------------------------------------------------------
ArNetTool_T* __stdcall ArWinNetFactory_T::CreateNetTool(void)
{
if(NULL == m_pNetTool)
{
m_pNetTool = new ArWinNetTool_T;
}
return m_pNetTool;
}
//-----------------------------------------------------------------------------------
bool __stdcall ArWinNetFactory_T::DestroyServer(ArServer_T* pServer)
{
if(pServer)
{
pServer->Destroy();
m_ServerList.remove(pServer);
return true;
}
return false;
}
//-----------------------------------------------------------------------------------
bool __stdcall ArWinNetFactory_T::DestroyClient(ArClient_T* pClient)
{
if(pClient)
{
pClient->Destroy();
m_ClientList.remove(pClient);
return true;
}
return false;
}
//-----------------------------------------------------------------------------------
bool __stdcall ArWinNetFactory_T::Destroy(void)
{
//DestroyAllServer();
//DestroyAllCient();
if(m_pNetTool)
{
m_pNetTool->Destroy();
};
Sleep(1000);
m_bHasDestroy = true;
//ArWinServer_T::DestroyServerHeap();
WSACleanup();
delete this;
return true;
}
//-----------------------------------------------------------------------------------
bool ArWinNetFactory_T::Initial(void)
{
if(WSAStartup(MAKEWORD(2,2), &m_wsd) != 0)
{
char strInfo[100];
sprintf(strInfo,"无法装载SocketDll! 错误号:%d",WSAGetLastError());
::MessageBox(NULL, strInfo, "错误", MB_ICONWARNING);
WSACleanup();
return false;
}
return true;
}
//-----------------------------------------------------------------------------------
void ArWinNetFactory_T::DestroyAllCient(void)
{
std::list<ArClient_T*>::iterator Pos = m_ClientList.begin();
if(Pos != m_ClientList.end())
{
ArClient_T* pClient = *Pos;
if(pClient)
{
pClient->Destroy();
}
Pos++;
}
ArWinClient_T::DrestroyClientHeap();
}
//-----------------------------------------------------------------------------------
void ArWinNetFactory_T::DestroyAllServer(void)
{
std::list<ArServer_T*>::iterator Pos = m_ServerList.begin();
if(Pos != m_ServerList.end())
{
ArServer_T* pServer = *Pos;
if(pServer)
{
pServer->Destroy();
}
Pos++;
}
}
//-----------------------------------------------------------------------------------
bool __stdcall ArWinNetFactory_T::GetVersion(char* strVersion)
{
sprintf(strVersion, "NetDll 7(单线程版本)");
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -