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

📄 mainproc.cpp

📁 网络工具开发包
💻 CPP
字号:
#include "stdafx.h"
#include "serverWGUI.h"
#include "SysInfoList.h"
#include "mainProc.h"
#include <direct.h>
#include "iniWrapper.h"

CSysInfoDisplay glo_myDisplay(MY_SERVER_NAME,LOG_FILE);
CSocketGlobalDataStorage glo_storeData(MY_SERVER_NAME,MainProcCallback,&glo_myDisplay);//创建文件输出对象
CSocketParentThread glo_parentThread(&glo_storeData);

CDialog *glo_pMainDlg=NULL;
int glo_iListenSockPort=9988;


//处理线程
void MainProcCallback(CServerStatus* pS,CSocketChildThread* pC)
{//回调函数,功能:直接返回对方发送来的数据
	//SOCKET sSock = pC->m_sockComm.m_sockComm; 可以得到SOCKET变量
	int iRead,iWrote;
	if(pS->GetParentThreadStatus() != CServerStatus::Running)
	{//判断当前服务器是否为运行状态
		char szRet[]="当前未运行";
		pC->m_sockComm.Send(strlen(szRet) +1,(BYTE*)szRet,iWrote);
		return ;
	}
	while(1)
	{
		BYTE b;
		if(SP_ERR_SUCCESS == pC->m_sockComm.Recv(1,&b,iRead))
			pC->m_sockComm.Send(1,&b,iWrote);
		else
			break;
	}
	//等待客户端退出
	//	BYTE _bTemp[1024];
	//	int _iRead;
	//	while(SP_ERR_NETWORK != pC->m_sockComm.TestAndRecv(30,1024,(BYTE*)_bTemp,_iRead)){};
		
}

//在系统刚开始运行时初始化系统环境
//1、检测ini文件是否存在
//2、读取数据库的设置
//3、设置日志文件目录
BOOL InitSysEnv(CDialog *pDlgMain)
{
	glo_pMainDlg = pDlgMain;

	CIniWrap iniR(INI_SETTING_FILE);
	
	iniR.ReadInt ("server","listen_port",glo_iListenSockPort);
	glo_myDisplay.PutLineEx(COutputDisplay::Message,"Port=%d",glo_iListenSockPort);

	return TRUE;
}


BOOL CSysInfoDisplay::PutLine(ErrorLevel eLevel,LPCSTR pszOutPut)
{//调用CFileOutputDisplay::PutLine()
	DWORD dwID;
	//CDialog* pMainDlg=(CDialog*)CWnd::FromHandle (glo_hMainWnd) ;
	CSysInfoList *pList ;
	switch (eLevel)
	{
		//显示在成功显示栏上
	case ErrorLevel::Message:
	case ErrorLevel::Success:
	case ErrorLevel::GeneralWarn:
		dwID=IDC_LIST_SYS_RUN_INFO;
		break;
		//显示在错误显示栏上
	case ErrorLevel::FatalWarn:
	case ErrorLevel::GeneralError:
	case ErrorLevel::FatalError:
		dwID=IDC_LIST_SYS_ERR_INFO;
		//绑定写错误日志
		//glo_cAppErrLog.PutLine (COutputDisplay::GeneralError,szTemp);
		break;
	}
	pList=(CSysInfoList *)glo_pMainDlg->GetDlgItem(dwID);
	pList->DisplayMsg ((int)eLevel,pszOutPut);
	return CFileOutputDisplay::PutLine (eLevel,pszOutPut);
};

BOOL CSysInfoDisplay::PutLineEx(ErrorLevel eLevel,LPCSTR pszOutPut,...)
{
	char szTemp[4096];
	va_list marker;
	va_start(marker, pszOutPut );
	
	int ret=vsprintf(szTemp,pszOutPut,marker);
	va_end(marker);

	//调用本类的PutLine()
	return PutLine(eLevel,szTemp);
}

⌨️ 快捷键说明

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