示例#1
0
void OnCommand(WPARAM wParam, LPARAM lParam)
{
	int nPort;

	switch (LOWORD(wParam))
	{
		case IDM_STARTSERVICE:
		{
			g_fTerminated = FALSE;

			if (!jRegGetKey(_DB_SERVER_REGISTRY, _TEXT("LocalPort"), (LPBYTE)&nPort))
				nPort = 5000;
	
			LoadCharacterRecords();

			InitServerSocket(g_ssock, &g_saddr, _IDM_GATECOMMSOCK_MSG, 6000, 1);
			InitGateCommSocket(g_gssock, &g_gsaddr, _IDM_GATECOMMSOCK_MSG, 5100, FD_ACCEPT|FD_READ|FD_CLOSE);

			UINT			dwThreadIDForMsg = 0;
			unsigned long	hThreadForMsg = 0;
				
//			if (hThreadForMsg = _beginthreadex(NULL, 0, ProcessUserHuman, NULL, 0, &dwThreadIDForMsg))
				hThreadForMsg = _beginthreadex(NULL, 0, ProcessDBMsg, NULL, 0, &dwThreadIDForMsg);
				hThreadForMsg = _beginthreadex(NULL, 0, ProcessGateMsg, NULL, 0, &dwThreadIDForMsg);

			SwitchMenuItem(TRUE);

			return;
		}
		case IDM_STOPSERVICE:
		{
			g_fTerminated = TRUE;

			SwitchMenuItem(FALSE);

			return;
		}
		case IDM_CONFIG:
		{
			DialogBox(g_hInst, MAKEINTRESOURCE(IDD_CONFIGDLG), NULL, (DLGPROC)ConfigDlgFunc);

			return;
		}
	}
}
示例#2
0
UINT WINAPI LoadAccountRecords(LPVOID lpParameter)
{
	//InsertLogMsg(IDS_LOADACCOUNTRECORDS);


	//下面这一段是获取服务器相关消息的,暂时屏蔽掉
	//CRecordset *pRec = GetDBManager()->CreateRecordset();
	//pRec->Execute( "UPDATE TBL_ACCOUNT SET FLD_CERTIFICATION=0 WHERE FLD_CERTIFICATION >= 30" );
	//GetDBManager()->DestroyRecordset( pRec );
	//// ----------------------------------------------------------------------------------------

	//GAMESERVERINFO *pServerInfo;

	//pRec = GetDBManager()->CreateRecordset();
	//if ( pRec->Execute( "SELECT * FROM TBL_SERVERINFO" ) )
	//{
	//	while ( pRec->Fetch() )
	//	{			
	//		pServerInfo = new GAMESERVERINFO;
	//		if ( !pServerInfo )
	//			break;

	//		pServerInfo->index = atoi( pRec->Get( "FLD_SERVERIDX" ) );
	//		strcpy( pServerInfo->name, pRec->Get( "FLD_SERVERNAME" ) );
	//		strcpy( pServerInfo->ip,   pRec->Get( "FLD_SERVERIP" ) );
	//		pServerInfo->connCnt = 0;

	//		g_xGameServerList.AddNewNode( pServerInfo );
	//	}
	//}
	//GetDBManager()->DestroyRecordset( pRec );

	GAMESERVERINFO *pServerInfo;
	char szTmp[64];
	for ( PLISTNODE pNode = g_xGameServerList.GetHead(); pNode; pNode = g_xGameServerList.GetNext( pNode ) )
	{
		pServerInfo = g_xGameServerList.GetData( pNode );
		
		sprintf( szTmp, "%d,%s,", pServerInfo->index, pServerInfo->name );
		strcat( g_szServerList, szTmp );
	}
	// ----------------------------------------------------------------------------------------

	InitServerThreadForMsg();

	if (InitServerSocket(g_gcSock, &g_gcAddr, _IDM_GATECOMMSOCK_MSG, 5500, 1))
		SwitchMenuItem(TRUE);

	return 0L;
}
示例#3
0
void OnCommand(WPARAM wParam, LPARAM lParam)
{
	switch (LOWORD(wParam))
	{
		case IDM_STARTSERVICE:
		{
			//开始服务器
			g_fTerminated = FALSE;
			
			UINT			dwThreadIDForMsg = 0;
			unsigned long	hThreadForMsg = 0;
			
			//创建一条线程
			hThreadForMsg = _beginthreadex(NULL, 0, LoadAccountRecords, NULL, 0, &dwThreadIDForMsg);
			
			return;
		}
		case IDM_STOPSERVICE:
		{
			ClearSocket(g_gcSock);

			SwitchMenuItem(FALSE);

			return;
		}
		case IDM_FONTCOLOR:
			SetFontColor();
			return;
		case IDM_BACKCOLOR:
			SetBackColor();
			return;
		case IDM_CONFIG:
		{
			CreateConfigProperties();
			return;
		}
	}
}
示例#4
0
UINT WINAPI LoadAccountRecords(LPVOID lpParameter)
{
	//获取服务器列表的
	GAMESERVERINFO *pServerInfo;
	char szTmp[64];
	for ( PLISTNODE pNode = g_xGameServerList.GetHead(); pNode; pNode = g_xGameServerList.GetNext( pNode ) )
	{
		pServerInfo = g_xGameServerList.GetData( pNode );
		
		sprintf( szTmp, "%d,%s,", pServerInfo->index, pServerInfo->name );
		strcat( g_szServerList, szTmp );
	}
	// ----------------------------------------------------------------------------------------

	//服务器线程
	InitServerThreadForMsg();

	ENGINE_COMPONENT_INFO info = g_SeverConfig.getLoginSrvInfo();

	if (InitServerSocket(g_gcSock, &g_gcAddr, _IDM_GATECOMMSOCK_MSG, info.intport?info.intport:5500, 1))
		SwitchMenuItem(TRUE);

	return 0L;
}