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

📄 duanxindlg.cpp

📁 用jsp做的能够实现简单的短信息发送回复的短消息系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		sprintf(send_message+strlen(send_message),"%21s",stSMSInfo.m_szAccName);
		sprintf(send_message+strlen(send_message),"%16s",stSMSInfo.m_szMobile);
		sprintf(send_message+strlen(send_message),"%2s",stSMSInfo.m_szSend);
		sprintf(send_message+strlen(send_message),"%2s", stSMSInfo.m_szPay);
		sprintf(send_message+strlen(send_message),"%5s" , stSMSInfo.m_szCod);
		sprintf(send_message+strlen(send_message),"%501s", stSMSInfo.m_szMess);
		sprintf(send_message+strlen(send_message), "%21s" , stSMSInfo.m_szOther);
		sprintf(send_message+strlen(send_message),"%2s",     stSMSInfo.m_szClient);
		*/



		memset(m_addr, 0, sizeof(m_addr)) ;
		memset(m_port, 0, sizeof(m_port)) ;
		memset(m_tmp, 0, sizeof(m_tmp)) ;

		
		pDlg->m_ADDRESS.GetLine(0,m_addr, 20);
		pDlg->m_PORT.GetLine(0,m_port, 7);

		struct sockaddr_in  addr;
		memset(&addr, 0, sizeof(addr));
		sock = socket(AF_INET, SOCK_STREAM, 0);
		if(sock==SOCKET_ERROR)
		{
			AfxMessageBox("Create socket error!") ;
			goto ERROR_PROC ;
		}
		addr.sin_family =AF_INET;	
		addr.sin_port =htons(atoi(m_port));
		addr.sin_addr.s_addr = inet_addr(m_addr);
		ret = connect( sock,(struct sockaddr*) &addr,(int)sizeof(addr));
		if(ret == SOCKET_ERROR)
		{
			AfxMessageBox("connect error " );
			closesocket(sock);
			goto ERROR_PROC;
		}
		else
		{
		
			if(	send(sock,send_message,sizeof(send_message),0)==SOCKET_ERROR)
			{
				AfxMessageBox("send Error ");
				closesocket(sock);
				goto ERROR_PROC;
			}
		}
		
		if(recv(sock, recv_message, sizeof(recv_message), 0) == SOCKET_ERROR)
		{ 
			AfxMessageBox(" 未接收到返回消息 出错 message is error" );
			closesocket(sock);
			goto ERROR_PROC;
		}
		else
		{
			if(strcmp(recv_message , "0000")==0)
			{
			}
			else
			{
				sprintf(m_tmp,"接收返回消息出错e is[%s]手机号是:[%s]",recv_message,stSMSInfo.m_szMobile) ;
				AfxMessageBox(m_tmp) ;
				closesocket(sock);
				goto ERROR_PROC;
			}
		}
		
		
		/**
		ret = co_sock.Create() ;
		//	ret = co_sock.Create(0,SOCK_STREAM, FD_CONNECT|FD_CLOSE, (LPCTSTR)m_addr ) ;
		if(!ret)
		{
			ret = co_sock.GetLastError() ;
			sprintf(m_tmp,"1.建立sock错误码[%d]",ret) ;
			AfxMessageBox(m_tmp) ;
			return ;
		}
		AfxMessageBox(m_addr);
		AfxMessageBox(m_port);
		ret = co_sock.Connect(m_addr, (UINT)(atoi(m_port))) ;
		if(!ret)
		{
			ret = co_sock.GetLastError() ;
			sprintf(m_tmp,"2.连接sock错误码[%d]",ret) ;
			AfxMessageBox(m_tmp) ;
		}
		**/
	
		if(head1->next == NULL)
		{

		break;
		}
		closesocket(sock);
		head1 = head1->next;
		
	}
	AfxMessageBox("Connect ,send Success " );

ERROR_PROC:
	if(p_head->next==NULL)
	{
	}
	else
	{
	head1 = p_head->next;
	MOBILE * lose_list;
	while(head1->next!= NULL)
	{
		lose_list =head1->next;
		delete head1 ;
		head1 =lose_list;
	}
	delete head1;
	}
	p_head->next=NULL;
	m_LIST.ResetContent();
	m_Button.ShowWindow(SW_SHOW);	
}
/*************************************************************************************
*                           函数名:OnOpenFileDialog
							实现功能:读取文件并将其送到链表中
							参数:    无
							返回值:  无
*
*
*
*
***************************************************************************************/
void CDuanXinDlg::OnOpenFileDialog() 
{
	// TODO: Add your control notification handler code here
	FILE *fp  = NULL;
	char	File_Path[1024] = "\0"	;
	char	Read_Txt[1024]	="\0"	;
	

	CFileDialog Read_File_Dialog(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,NULL);

	if(Read_File_Dialog.DoModal()==IDOK )
	{

		strcpy(File_Path,(LPCTSTR) Read_File_Dialog.GetFileName());
		if(strlen(File_Path)==0)
		{
			AfxMessageBox("File name is null ");
			return ;
		}
		if((fp=fopen(File_Path,"r"))<0)
		{
			AfxMessageBox("File Open is error ");
			fclose(fp);
			return;
		}
		else
		{
			while(fgets(Read_Txt,1024,fp) !=  NULL)
			{
				TRIM(Read_Txt);
				Add_Mobile(Read_Txt);
			}
		}
				
		fclose(fp);

	}
}

void CDuanXinDlg::Add_Mobile(char *mobile)
{
	int i =0	;
	MOBILE *p_mobile=NULL;						//MOBILE为结构体
	//memset(mobile,0,21);
	MOBILE *p_head1 = p_head;

	if(strlen(mobile)==0)
	{
		AfxMessageBox(" you mobile number is NULL");
		return;
	}
	else
	{
		while(1)												//链表操作
		{
			i++;
			if(p_head1->next == NULL)
			{
				p_head1->next = new  MOBILE;
				
				//memset(p_head1->next,0,sizeof(MOBILE));
				p_mobile = p_head1->next;
				memset((p_mobile->sz_mobile),0 ,21);
				p_mobile->next = NULL;
				break ;
			}
			else
			{
				 p_head1=p_head1->next;
				 /*
				 sprintf(sztmp,"%s",p_head1->sz_mobile);
				 AfxMessageBox(sztmp);
                  */
			}
		}
		strncpy(p_mobile->sz_mobile,mobile,16);
		
		if((m_LIST.AddString(p_mobile->sz_mobile))==LB_ERR )
		{
			AfxMessageBox(" you insert message is error");
		}
		
		m_MOBILE.SetSel(0, -1);
		m_MOBILE.Clear();

		
	}
	return;

}
/****************************************************************************************
*					函数功能:连接远程数据库检查用户密码及用户名
*					函数参数:无
*					函数返回:无
*					编写者:  张明
*					编写日期:20060410
*
****************************************************************************************/


void CDuanXinDlg::MyCheckSecret()
{
	long	lRet = 0;
	long	lCnt = 0, len = 0;
	char		sz_secret[33]="\0";
	char		sz_user_name[33] ="\0";
	char		recordset_pass[33] ="\0";
	char		recordset_user_name[33] ="\0";
	int			i =0	;
	char		szTmp[100] ="\0";


	CDuanXinApp *pApp=(CDuanXinApp *)AfxGetApp();
    CDuanXinDlg *pDlg=(CDuanXinDlg *)pApp->m_pMainWnd;
	
	while(TRUE)
	{
	CMyUser CSecretDailog(pDlg);
	if(CSecretDailog.DoModal()==IDCANCEL)
	 {
		 exit(1);
	 }
	UpdateData(FALSE);
    //	CSecretDailog.SetFocus();
	strncpy(sz_secret,LPCTSTR(CSecretDailog.m_secret),7);
	strncpy(sz_user_name,LPCTSTR(CSecretDailog.m_user_name),20);

	CDatabase    use_database;
	try
	{
		if(use_database.Open(NULL,FALSE,TRUE,"ODBC;DSN=mlink;UID=smsuser;PWD=smspass")!=0)
		{
			//AfxMessageBox("CDataBase is open error\n");
			//exit(1);
		}


	CMyRecordset use_recordset(&use_database);
	
	if(use_recordset.IsOpen())
	{
		use_recordset.Close();
	}
	if((use_recordset.Open()==0))
	{
		AfxMessageBox("connect database is error");
		use_recordset.Close();
		exit(1);
	}
	//AfxMessageBox(sz_secret);
	//AfxMessageBox(sz_user_name);
	while(!use_recordset.IsEOF())
	{
		use_recordset.MoveNext();
	//	strcpy(recordset_pass,use_recordset.m_fs_Pass.GetBuffer(32));
		len = use_recordset.m_fs_Pass.GetLength();
		for(lCnt =0 ; lCnt < len; lCnt++)
			recordset_pass[lCnt] = use_recordset.m_fs_Pass.GetAt(lCnt);
		len =0;
		lCnt =0;
		
		len = use_recordset.m_fs_User.GetLength();
		for(lCnt = 0; lCnt < len; lCnt++)
			recordset_user_name[lCnt] = use_recordset.m_fs_User.GetAt(lCnt);

		
		TRIM(recordset_pass);
		TRIM(recordset_user_name);
		TRIM(sz_secret);
		TRIM(sz_user_name);
		//AfxMessageBox(sz_secret);
		//AfxMessageBox(sz_user_name);
		if((strcmp(sz_secret, recordset_pass)==0) && (strcmp(sz_user_name,recordset_user_name)==0))
		{
			use_recordset.Close();
			return;
		}
		//use_recordset.MoveNext();
	}
	

		
	use_recordset.Close();
	}
	catch( CDBException a)
	{
		AfxMessageBox(" you connect sybase is error");
		exit(1);
	}
	catch(...)
	{
		AfxMessageBox( " 你连接的数据库没连好请确定!! ");
		exit(1);
	}
	
	if(i ==3)
	{
		exit(0);
	}
	sprintf(szTmp,"you secret is error please reput \n    you chance is %d",3-i++);
	AfxMessageBox(szTmp);
	memset(sz_secret,0,sizeof(sz_secret));

	memset(sz_user_name, 0 ,sizeof(sz_user_name));
	UpdateData(FALSE);
		//for test
	
	}
}







⌨️ 快捷键说明

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