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

📄 send_free.cpp

📁 SP平台联通短信群发程序
💻 CPP
字号:
//从文件中读取号码和内容,免费发送,插入COM_SEND表中//发送格式:./send_free 发送号码文件名 发送内容文件名 扣费代码(免费,SEND表)#include <stdio.h>#include <string.h>#include <time.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include "../include/define.h"#include "../include/CMPPAPI.hpp"#include "mysql/mysql.h"#include "../include/sm_tools.h"#include "../include/sm_db.h"#define INIFILE "../config/sm.ini"char db_host[100],db_user[100],db_passwd[100],db_dbname[100];MYSQL *myconn;static int InitPara(){	myconn = NULL;	GetProfileString(INIFILE,"DB_LOCAL","HOST","localhost",db_host);	GetProfileString(INIFILE,"DB_LOCAL","LOGNAME","root",db_user);	GetProfileString(INIFILE,"DB_LOCAL","LOGPASS","",db_passwd);	GetProfileString(INIFILE,"DB_LOCAL","DBNAME","NW_SM",db_dbname);	return 0;}int main(int argc,char *argv[]){	char *day;	char filename[100],file_nr[100],dcode[10],sql[500];	char msisdn[30];	char context[1000];	FILE *fp;	int len,i,retval;	MYSQL_ROW row;	MYSQL_RES *res = NULL;	i=0;    	SEND_STRUC sendstruc;	InitPara();	puts(db_dbname);	if(argc<4)	{		printf("格式:%s 发送号码文件名 发送内容文件名 扣费代码(免费,SEND表)\n",argv[0]);		return 0;	}	else	{		strcpy(filename,argv[1]);		strcpy(file_nr,argv[2]);		strcpy(dcode,argv[3]);	}	fp = fopen(file_nr,"rb");	if(fp == NULL)	{		puts("打开发送内容文件失败!");		return 0;	}	len = fread(context,1,999,fp);	context[len] = '\0';		printf("content len:%d\n",len);	fclose(fp);	if(len>500)	{		puts("你的发送内容已超过500个字节,请查实后再发");		return 0;	}	memset(&sendstruc,0,sizeof(sendstruc));	sendstruc.nNeedReply = NEED_REPLY_NO;	sendstruc.nMsgLevel = 5;	strcpy(sendstruc.sServiceID,dcode);	sendstruc.nMsgFormat = MSG_FORMAT_ASCII;	strcpy(sendstruc.sFeeType,"01");	sendstruc.sFeeCode = 0.10;	strcpy(sendstruc.sValidTime,"");	strcpy(sendstruc.sAtTime,"");	strcpy(sendstruc.sSrcTermID,"8566");	sendstruc.cFeeUserType=0;	strcpy(sendstruc.sFeeTerminalID,"");	sendstruc.cTpPid = 0;	sendstruc.cTpUdhi = 0;	strcpy(sendstruc.step,"0");	day = getnowdate(sendstruc.Send_Date);	strcpy(sendstruc.sMsgContent,context);		fp = fopen(filename,"r");	if(fp == NULL)	{		puts("open file error!");		return 0;	}	myconn = dbconnect(db_host,db_user,db_passwd,db_dbname);	if(myconn == NULL)	{		puts("连接数据库失败,请查看日志文件!");		return 0;	}	while(fgets(msisdn,30,fp)!=NULL)	{		msisdn[11] = '\0';		if (strncmp(msisdn,"13",2)!=0 || strlen(msisdn)!=11) 		{			continue;		}				//查询用户是否是黑名单用户		sprintf(sql,"SELECT FLAG FROM INFO_BLACK_PHONE WHERE (MSISDN='%s' OR SUBSTRING('%s',1,7)=MSISDN) AND FLAG='1'",msisdn,msisdn);		retval = QuerySQL(sql,&myconn,&res);		if(retval != 0)		{			puts("查询USER表指令失败");			continue;		}		if(res == NULL)		{			continue;		}		//有用户记录,是黑名单用户,不发		if( row = mysql_fetch_row(res))		{			puts(msisdn);			mysql_free_result(res);			continue;		}		//无用户记录,不是黑名单用户,则发送		else		{			mysql_free_result(res);						strcpy(sendstruc.sDesTermID,msisdn);    			SendMsg(&sendstruc,&myconn);    			strcpy(msisdn,"");    			    			i++;		}	}	printf("the total num you send is :%d\n",i);	fclose(fp);		return 0;}

⌨️ 快捷键说明

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