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

📄 arwinnetfactory_t.cpp

📁 wangchuanDll.rar 网络传输的DLL 源代码
💻 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 + -