Example #1
0
int CTCPConnect::GetCustLevel(CString StrCardNum,CString strIP,CString strPort,UINT iOverTime)
{
    if (StartSocket(strPort,strIP))
    {
        char cCardNum[30];
        CCommonConvert::CStringToChar(StrCardNum,cCardNum);
        SocketPackage package = MakePackage(cCardNum);
        int size = sizeof(package);
        SendTo((char*)&package,sizeof(package));
        CString CardNum = _T("cardnum:")+StrCardNum;
        WriteLogWithTime(CardNum);
        char CardRecv[255];
        BOOL RecvTemp = FALSE;
        setsockopt(m_tSocket,SOL_SOCKET,SO_RCVTIMEO,(char *)&iOverTime,sizeof(UINT));
        if (!RecvFrom(CardRecv,255))
        {
            return -1;
        }
        int iLevel = GetLevel(CardRecv);

        //RecvFrom()
        CloseSocket();
        return iLevel;
    }
    else
    {
        CString strErr = _T("socket启动失败");
        return -1;
    }

}
Example #2
0
BOOL MySocketUDP::SendTo( CHAR * pData, UINT nLen, LPSOCKADDR_IN pSockaddr_in)
{
	StartSocket(0);
	try
	{
		int iRet = ::sendto(m_uSocket, pData, nLen, 0, (LPSOCKADDR)pSockaddr_in, sizeof(SOCKADDR_IN));
		//int iRet = ::sendto(m_uSocket, pData, nLen, MSG_DONTWAIT, (LPSOCKADDR)pSockaddr_in, sizeof(SOCKADDR_IN));
		if(iRet == SOCKET_ERROR)
		{
			return FALSE;
		}
	}
	catch (CException* e)
	{
		return FALSE;
	}

	return TRUE;
}
Example #3
0
int main(int argumentCount, char* arguments[])
{

	SysCtrlNode server;
	ClientConnector clientConnector; /*handle connection with client*/
	PlNodeConnector plNodeConnector; /*handle connection with plNode*/
	BackupSysCtrlNodeController backupSysCtrlNodeController; /*handle backup sys ctrl node*/
	MyLog logger;
	bool recovery = false;
	char buffer[1024];

	bool backup = false;

	int i;
	int portIndex = 0;
	int portToListen;
	int portToConnect;

	// 	char buffer[1024];
	// 	int cmd;

	// 	printf("recovery? 0(false) / 1(true) \n");
	// 	gets(buffer);
	// 	sscanf(buffer, "%d", &cmd);
	// 	if (cmd == 0)
	// 	{
	// 		recovery = false;
	// 	}
	// 	else if (cmd == 1)
	// 	{
	// 		recovery = true;
	// 	}


	for (i = 1; i < argumentCount; ++i)
	{
		if (0 == strcmp("recover", arguments[i]))
		{
			recovery = true;
		}
		if (0 == strcmp("backup", arguments[i]))
		{
			backup = true;
		}
		if (1 == sscanf(arguments[i], "portIndex%d", &portIndex))
		{
		}
	}






	InitializeMemeryHook();

	StartSocket();

	if (!InitConfig())
	{
		printf("config file cannot be found.\n");
		getchar();
		return 0;
	}

	InitLogSystem(&logger, "SysCtrlNodeLog.txt", recovery);

	SysCtrlNodeConstruct(&server, &logger, backup, recovery);

	ClientConnectorConstruct(&clientConnector, &server);
	ClientConnectorSetListeningPort(&clientConnector, portIndex == 0 ? g_configData.clientListeningPort : g_configData.clientListeningPort2);
	SysCtrlNodeSetClientConnector(&server, &clientConnector);

	PlNodeConnectorConstruct(&plNodeConnector, &server);
	PlNodeConnectorSetListeningPort(&plNodeConnector, portIndex == 0 ? g_configData.plNodeListeningPort : g_configData.plNodeListeningPort2);
	SysCtrlNodeSetPlNodeConnector(&server, &plNodeConnector);

	BackupSysCtrlNodeControllerConstruct(&backupSysCtrlNodeController, &server);
	if (portIndex == 0)
	{
		portToListen =  g_configData.selfListeningPort;
		portToConnect = g_configData.selfListeningPort2;
	}
	else
	{
		portToListen =  g_configData.selfListeningPort2;
		portToConnect = g_configData.selfListeningPort;
	}
	// connect to other port
	BackupSysCtrlNodeControllerSetTargetServerIPAndPort(&backupSysCtrlNodeController, g_configData.szIP, portToListen, portIndex, portToConnect);
	SysCtrlNodeSetBackupSysCtrlNodeController(&server, &backupSysCtrlNodeController);

	SysCtrlNodeStart(&server);


	printf("**** To shutdown the whole system, type 'shutdown' in either SysCtrlNode. ****\n");
	do 
	{
		gets(buffer);
	}
	while (strcmp(buffer, "shutdown") != 0);

	SysCtrlNodeShutdownSystem(&server);

	PlNodeConnectorDestruct(&plNodeConnector);
	ClientConnectorDestruct(&clientConnector);
	SysCtrlNodeDestruct(&server);

	DestroyLogSystem(&logger);

	DestroySocket();

	if (FinalCheckMemoryAllocation())
	{
	}
	return 0;
}