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

📄 msnloginclient.cpp

📁 VideoMan is a very easy image acquisition library. It is able to manage many video inputs at the sam
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	}
	else if(strCommand == CString("LST"))
	{
		DoLST( strMsg );
		FileLog("LST :获取(联系人列表)请求的应答!");
	}
	else if(strCommand == CString("BLP"))
	{
	 
		FileLog("BLP :BLP设置保密策略请求的应答!");
		memset(buf,0x00,sizeof(buf));
		m_iSendXh++;
		sprintf(buf, "PNG\r\n");
		m_pSocket->Send( (void*)buf, strlen(buf));
	}
	else if(strCommand == CString("QNG"))
	{
	 
		FileLog("QNG :PNG(ping)请求的应答!");
	}
	else if(strCommand == CString("QRY"))
	{
	 
		FileLog("QRY :CHL服务器验证通过!");
		memset(buf,0x00,sizeof(buf));
		m_iSendXh++;
		sprintf(buf, "PNG\r\n");
		m_pSocket->Send( (void*)buf, strlen(buf));

		DoUserInput("AddUser sim_m_s_n@hotmail.com",9999);

		DispMainPage(); /*显示*/
	}
	else if(strCommand == CString("MSG"))
	{
		//MSG Hotmail Hotmail 499
	 
		FileLog("MSG:NS服务器发出消息数据 ...");
		
		memset(alTmp0,0x00,sizeof(alTmp0));
		memset(alTmp1,0x00,sizeof(alTmp1));
		memset(alTmp2,0x00,sizeof(alTmp2));
		memset(alTmp3,0x00,sizeof(alTmp3));
		memset(alTmp4,0x00,sizeof(alTmp4));
	 
		sprintf(alTmp0,"%s",(LPCTSTR)strMsg);
		int iLen;
		sscanf(alTmp0,"%s %s %s %s",alTmp1,alTmp2,alTmp3 ,alTmp4);
		iLen = atoi( alTmp4 );
		FileLog("MSG : %s %s %s ,Len=%d",alTmp1,alTmp2,alTmp3 ,iLen);
		m_iBytesForCmd = iLen;
			 
	}
	else if(strCommand == CString("ILN"))
	{
		//ILN 10 NLN tcpip_2005@126.com 动力通信工作组 1073791020 
	 
		memset(alTmp0,0x00,sizeof(alTmp0));
		memset(alTmp1,0x00,sizeof(alTmp1));
		memset(alTmp2,0x00,sizeof(alTmp2));
		memset(alTmp3,0x00,sizeof(alTmp3));
		memset(alTmp4,0x00,sizeof(alTmp4));
		memset(alTmp5,0x00,sizeof(alTmp5));
		memset(alTmp6,0x00,sizeof(alTmp6));
		memset(alTmp7,0x00,sizeof(alTmp7));
		sprintf(alTmp0,"%s",(LPCTSTR)strMsg);
		 
		sscanf(alTmp0,"%s %s %s %s %s %s %s",alTmp1,alTmp2,alTmp3 ,alTmp4,alTmp5,alTmp6,alTmp7);
		
		FileLog("ILN:NS->[联系人: %s %s %s Status:%s]",alTmp4,alTmp5,alTmp6, alTmp3);
		//memset(alTmp0,0x00,sizeof(alTmp0));
		//memcpy(alTmp0,(LPCTSTR)strMsg,strMsg.GetLength());
		for( int i=0;i<m_iCountUser; i ++ )
		{
			if( !m_MsnUser[i]->m_strEmail.CompareNoCase(alTmp4) )
			{
				m_MsnUser[i]->m_strStatus.Format("%s",alTmp3);
				m_MsnUser[i]->m_strNickName.Format("%s",alTmp5);
				FileLog("ILN:NS->联系人 i=[%d](%s) ,更新状态完成!", i,(LPCTSTR)m_MsnUser[i]->m_strEmail );
				break;
			}

		}
		
		DeCodeBuf( alTmp7 , strlen(alTmp7)) ;
		alTmp7[0]='_';
		FileLog("ILN:NS->[联系人:%s]",alTmp7 );
		DispMainPage();
	}
	else if(strCommand == CString("REA"))
	{
	 	FileLog("REA:NS-> OK!");
		DispMainPage();
	}
	else if(strCommand == CString("REM"))
	{
		FileLog("REM:NS-> 删除联系人OK!");
		DispMainPage();
	}
	else if(strCommand == CString("NLN"))
	{
		//NLN BSY  tcpip_2005@126.com 动力通信工作组 1073791020 
	 
		memset(alTmp0,0x00,sizeof(alTmp0));
		memset(alTmp1,0x00,sizeof(alTmp1));
		memset(alTmp2,0x00,sizeof(alTmp2));
		memset(alTmp3,0x00,sizeof(alTmp3));
		memset(alTmp4,0x00,sizeof(alTmp4));
		memset(alTmp5,0x00,sizeof(alTmp5));
		memset(alTmp6,0x00,sizeof(alTmp6));
		memset(alTmp7,0x00,sizeof(alTmp7));
		sprintf(alTmp0,"%s",(LPCTSTR)strMsg);
		 
		sscanf(alTmp0,"%s %s %s %s %s %s",alTmp1,alTmp3 ,alTmp4,alTmp5,alTmp6,alTmp7);
		
		FileLog("NLN:NS->[联系人: %s %s %s Status:%s]",alTmp4,alTmp5,alTmp6, alTmp3);
		
		for( int i=0;i<m_iCountUser; i ++ )
		{
			if( !m_MsnUser[i]->m_strEmail.CompareNoCase(alTmp4) )
			{
				m_MsnUser[i]->m_strStatus.Format("%s",alTmp3);
				m_MsnUser[i]->m_strNickName.Format("%s",alTmp5);
				FileLog("NLN:NS->联系人 i=[%d](%s) ,更新状态完成!", i,(LPCTSTR)m_MsnUser[i]->m_strEmail );
				break;
			}

		}
		if( i == m_iCountUser )
		{
			CString strTmp1;
			//[LST tcpip_2005@126.com 动力通信工作组 11 1]
			strTmp1.Format("LST %s %s 11 0",alTmp4,alTmp5);
			//m_MsnUser[i]->m_strStatus.Format("%s",alTmp3);
			DoLST(strTmp1);
		}
		
		DeCodeBuf( alTmp7 , strlen(alTmp7)) ;
		alTmp7[0]='_';
		FileLog("NLN:NS->[联系人:%s]",alTmp7 );
		DispMainPage();
	}
	else if(strCommand == CString("FLN"))
	{
		//FLN @sina.com.cn
	 
		memset(alTmp0,0x00,sizeof(alTmp0));
		memset(alTmp1,0x00,sizeof(alTmp1));
		memset(alTmp2,0x00,sizeof(alTmp2));
		memset(alTmp3,0x00,sizeof(alTmp3));
		memset(alTmp4,0x00,sizeof(alTmp4));
	 
		sprintf(alTmp0,"%s",(LPCTSTR)strMsg);
		 
		sscanf(alTmp0,"%s %s ",alTmp3 ,alTmp4);
	 
		for( int i=0;i<m_iCountUser; i ++ )
		{
			if( !m_MsnUser[i]->m_strEmail.CompareNoCase(alTmp4) )
			{
				m_MsnUser[i]->m_strStatus.Format("%s",alTmp3);
			 
				FileLog("FLN:NS->联系人 i=[%d](%s) ,更新状态完成!", i,(LPCTSTR)m_MsnUser[i]->m_strEmail );
				break;
			}

		}
		
	 
		DispMainPage();
	}
	else if(strCommand == CString("RNG"))
	{
		//RNG 17149548 207.46.108.49:1863 CKI 1116489150.3878  acd@sina.com.cn 静
	 
		memset(alTmp0,0x00,sizeof(alTmp0));
		memset(alTmp1,0x00,sizeof(alTmp1));
		memset(alTmp2,0x00,sizeof(alTmp2));
		memset(alTmp3,0x00,sizeof(alTmp3));
		memset(alTmp4,0x00,sizeof(alTmp4));
		memset(alTmp5,0x00,sizeof(alTmp5));
		memset(alTmp6,0x00,sizeof(alTmp6));
		memset(alTmp7,0x00,sizeof(alTmp7));
		sprintf(alTmp0,"%s",(LPCTSTR)strMsg);
		 
		sscanf(alTmp0,"%s %s %s %s %s %s %s",alTmp1,alTmp2,alTmp3 ,alTmp4,alTmp5,alTmp6,alTmp7);
		
		FileLog("RNG:NS->[联系人: %s(%s) 发出私聊session请求 ...]",alTmp6, alTmp7);
		
		for( int i=0;i<m_iCountUser; i ++ )
		{
			if( !m_MsnUser[i]->m_strEmail.CompareNoCase(alTmp6) )
			{
				FileLog("RNG:NS->[联系人: i=[%d](%s) ...]", i,(LPCTSTR)m_MsnUser[i]->m_strEmail );
				
				m_MsnUser[i]->m_strSessionID.Format("%s",alTmp2);
				m_MsnUser[i]->SBInit(alTmp3,alTmp5);
			
				break;
			}
		}
	}
	else if(strCommand == CString("ADD"))
	{
		//09:59:18:323 S->C 0046 [ADD 0 RL 0 abc@sina.com.cn %e5%a4%8f%e4%bb%a4%e9%9d%99
		  //09:59:28:448 C->S 0063 [ADD 13 AL abc@sina.com.cn %25e5%25a4%258f%25e4%25bb%25a4%25e9%259d%2599
		  //09:59:28:748 S->C 0061 [ADD 13 AL 1 abc@sina.com.cn abc@sina.com.cn
		  //09:59:42:147 C->S 0065 [ADD 14 FL abc@sina.com.cn %25e5%25a4%258f%25e4%25bb%25a4%25e9%259d%2599 0
		  //09:59:42:478 S->C 0049 [ADD 14 FL 1 abc@sina.com.cn %e5%a4%8f%e4%bb%a4%e9%9d%99 0
		  //09:59:42:668 S->C 0304 [ILN 14 NLN abc@sina.com.cn %e5%a4%8f%e4%bb%a4%e9%9d%99 1073795116 %
		memset(alTmp0,0x00,sizeof(alTmp0));
		memset(alTmp1,0x00,sizeof(alTmp1));
		memset(alTmp2,0x00,sizeof(alTmp2));
		memset(alTmp3,0x00,sizeof(alTmp3));
		memset(alTmp4,0x00,sizeof(alTmp4));
		memset(alTmp5,0x00,sizeof(alTmp5));

		sprintf(alTmp0,"%s",(LPCTSTR)strMsg);
		sscanf(alTmp0,"%s %s %s %s %s",alTmp1,alTmp2,alTmp3,alTmp4,alTmp5);
		FileLog("USR : %s %s %s %s",alTmp1,alTmp2,alTmp3,alTmp4,alTmp5);
		
		//USR 7 OK tcpip_2005@126.com tcpip_2005@126.com 1 0 \r\n 
		if( memcmp( alTmp3 ,"RL", 2) == 0 )
		{
		 //09:59:28:448 C->S 0063 [ADD 13 AL abc@sina.com.cn 
				memset(buf,0x00,sizeof(buf));
				m_iSendXh++;
				sprintf(buf, "ADD %d AL %s %s\r\n",m_iSendXh,alTmp5,alTmp5 );
				iTem = strlen(buf);
				buf[iTem] = 0x00; 
				m_pSocket->Send( (void*)buf, strlen(buf));

			return ;
		}
		else if( memcmp( alTmp3 ,"AL", 2) == 0 )
		{
	 			memset(buf,0x00,sizeof(buf));
				m_iSendXh++;
				sprintf(buf, "ADD %d FL %s %s 0\r\n",m_iSendXh,alTmp5,alTmp5 );
				iTem = strlen(buf);
				buf[iTem] = 0x00; 
				m_pSocket->Send( (void*)buf, strlen(buf));

			return ;
		}
		else if( memcmp( alTmp3 ,"FL", 2) == 0 )
		{
			FileLog("ADD %s  FL OK !" , alTmp5);
			
			return ;
		}
	 
	}
	else
	{
		FileLog("Error! Command[%s]",(LPCTSTR)strCommand);
	}

}


void CMsnLoginClient::ParseInputCommandStr(CString strText)
{

	int iEnd;
	CString strCommand,strParams;
	char	buf[50];
	int		iTem;
	
	//this input is a command
	//get the command:
	iEnd   = strText.Find(_T(' '));
	if(iEnd == -1)
	{
		//the input command like: '/list'
		strCommand = strText.Mid(1,strText.GetLength());
		strParams = CString(_T(""));
	}
	else
	{
		strCommand = strText.Mid(1,iEnd);
		strParams = strText.Mid(iEnd+1,strText.GetLength());
		strParams.TrimLeft();
		strParams.TrimRight();
	}

	strCommand.MakeUpper();
	strCommand.TrimLeft();
	strCommand.TrimRight();

	if( strCommand == CString(_T("JOIN")) )
	{
		//DoJoin( LPCSTR(strParams) );
	}
	else if( strCommand == CString(_T("LIST")) )
	{
		//DoList();
		if(m_pSocket == NULL) return;
		memset(buf,0x00,sizeof(buf));
		if( iEnd != -1 ) sprintf( buf, "LIST %s",LPCSTR(strParams));
		else strcpy(buf,"LIST");
		iTem = strlen(buf);
		buf[iTem] = 0x0d;
		buf[iTem+1] = 0x0a;
		buf[iTem+2] = 0x00;
		m_pSocket->Send( (void*)buf, strlen(buf));
	}

	else if( strCommand == CString(_T("CLEAR")) || strCommand == CString(_T("CLS")) )
	{
//		DoClear();
	}
	else 
	{
		 
		if(m_pSocket == NULL) return;
		memset(buf,0x00,sizeof(buf));
		if( iEnd != -1 ) sprintf( buf, "%s %s",LPCSTR(strCommand),LPCSTR(strParams));
		else sprintf( buf, "%s",LPCSTR(strCommand));
		iTem = strlen(buf);
		buf[iTem] = 0x0d;
		buf[iTem+1] = 0x0a;
		buf[iTem+2] = 0x00;
		m_pSocket->Send( (void*)buf, strlen(buf));
	}
}


void CMsnLoginClient::DoXFR()
{
		FileLog("->XFR:断开服务器连接!");
		m_pSocket->ShutDown(2);
		m_pSocket->Close();
		delete m_pSocket;
		m_pSocket = NULL;
		m_iLoginOk=0;
		Init();
}

int CMsnLoginClient::DoHTTPSAuthentication(char *alTmp3, char *alTmp4)
{
	FileLog("DoHTTPSAuthentication:NS给出的信息(S:Subsequent)[%s]", alTmp3);

	CInternetSession session("My Session");
	CHttpConnection* pServer = NULL;
	CHttpFile* pFile = NULL;
	DWORD dwHttpRequestFlags = INTERNET_FLAG_NO_AUTO_REDIRECT|INTERNET_FLAG_SECURE;
	 
	char szLogin[] = "https://login.passport.com/login2.srf?lc=1033";
 	char szHeaders[2000];
	//char szBuf[1024];
	memset(szHeaders,0x00,sizeof(szHeaders));
 
	//Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=example%40passport.com,pwd=password, lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1073355862,kpp=1,kv=5,ver=2.1.0173.1, tpf=ed1c2f217a21c191c61251eb8b73bb60 \r\n
	sprintf( szHeaders,"Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%%3A%%2F%%2Fmessenger%%2Emsn%%2Ecom,sign-in=%s,pwd=%s, %s \r\n", (LPCTSTR)m_strMyNickName,(LPCTSTR)m_strPassword,alTmp3 );
	
	FileLog( "szHeaders=[%s]",szHeaders);
	try
	{
	   CString strServerName;
	   CString strObject;
	   INTERNET_PORT nPort;
	   DWORD dwRet;

	   strServerName.Format("login.passport.com");
	   strObject.Format("/login2.srf?lc=1033");
	   nPort=443;
	   
	   FileLog("session.GetHttpConnection(%s,%d) ...",(LPCTSTR)strServerName, nPort);
	   

⌨️ 快捷键说明

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