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

📄 unit1_tread.cpp

📁 短信发送平台的源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
//0008 3010 11 02 40 13 00 06 4F6054403002 中文方式
//0000 3010 21 21 05 03 00 02 CF25         英文方式

#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "sms1.h"
 //#include "File1.c"
//#include "sms1.cpp"
#include "Unit1_tread.h"
#pragma package(smart_init)
#define SMSLEN 512
int fasongLENS;
//TEdit *Edit1;
//---------------------------------------------------------------------------

//   Important: Methods and properties of objects in VCL can only be
//   used in a method called using Synchronize, for example:
//
//      Synchronize(UpdateCaption);
//
//   where UpdateCaption could look like:
//
//      void __fastcall Unit1::UpdateCaption()
//      {
//        Form1->Caption = "Updated in a thread";
//      }
//---------------------------------------------------------------------------

__fastcall myterad::myterad( bool CreateSuspended)
        : TThread(CreateSuspended)
{  
}
//---------------------------------------------------------------------------
void __fastcall myterad::Execute()
{
        //---- Place thread code here ----


        char TimeStr[20],TypeStr[10],jradeStr[10],statStr[10];
        int accI;
        TDateTime DateTime = Time();
        AnsiString timeS=TimeToStr(DateTime);
        DateTime = Date();
        AnsiString dateS = DateToStr(DateTime);
        AnsiString shijianS;
        shijianS=dateS+' '+timeS;

         Form1->Memo7->Text="系统已准备好,开始接收信息..................................!\r\n";
       // FILE *fpAcc,*fpRe,*fpD,*fpH;
        FILE *fp,*fpD;
        char muluS[30],fileName[40],fileNameAcc[40],fileNameRe[40],fileNameH[40],fileNameD[40],accS[10];
        memset(accS,0x00,10);
         CreateDir(dateS.c_str());
        sprintf(muluS,"%s\\new", dateS.c_str()) ;
        CreateDir(muluS);
        sprintf(muluS,"%s\\send", dateS.c_str()) ;
        CreateDir(muluS);
        sprintf(muluS,"%s\\recv", dateS.c_str()) ;
        CreateDir(muluS);
        sprintf(muluS,"%s\\qury", dateS.c_str()) ;
        CreateDir(muluS);
        memset( fileNameAcc,0x00,sizeof(fileNameAcc));
        COMMTIMEOUTS to;
        char setCOM[10];               
        memset(setCOM,0,10);
        GetPrivateProfileString("SET","COM","COM1",setCOM,10, "./server.txt");

        HANDLE hCom = CreateFile(setCOM,
                                GENERIC_READ | GENERIC_WRITE,  // 允许读写        
                                0,                            // 此项必须为0
                                NULL,                         // no security attrs
                                OPEN_EXISTING,                //设置产生方式
                                0,            // 同步。 异步通信时用 (  FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED)       
                                NULL );

        fpD=fopen("./sms.log","w");
        fprintf(fpD,"com=...%s\n",setCOM);
        fflush(fpD);
        if(hCom)
        {
                DCB dcb;
                char setRATE[10];
                memset(setRATE,0,10);
                GetPrivateProfileString("SET","RATE","19200",setRATE,10, "./server.txt");
                ZeroMemory(&dcb, sizeof(dcb));
                dcb.DCBlength = sizeof(dcb);
                dcb.BaudRate = atoi(setRATE);
                dcb.ByteSize = 8;
                dcb.Parity = NOPARITY;
                dcb.StopBits = ONESTOPBIT;
                dcb.fDtrControl = DTR_CONTROL_ENABLE ;
                dcb.fRtsControl = RTS_CONTROL_ENABLE ;
                dcb.fInX= FALSE ;
                dcb.fOutX= FALSE ;
                dcb.fOutxDsrFlow= FALSE;
                dcb.fOutxCtsFlow= FALSE;
                 fprintf(fpD,"rate..%s\n",setRATE);
                 fflush(fpD);
                if(SetCommState(hCom,&dcb))
                {

                         DWORD ByteCount;
                         char  msg[3]  ;
                         memset(msg,0,sizeof(msg));
                         memset(&to,0,sizeof(to));
                         to.ReadTotalTimeoutMultiplier =5;
                         to.ReadTotalTimeoutConstant = 1000;
                         SetCommTimeouts(hCom,&to);

                         SetupComm(hCom,SMSLEN,SMSLEN);// 设置读写缓冲区
                         PurgeComm( hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR| PURGE_RXCLEAR ); //清干净输入、输出缓冲区

                         fprintf(fpD,"star...%s,%s\n",setCOM,setRATE);
                         fflush(fpD);
                         for(;;)
                         {
                                 DateTime = Date();
                                 dateS = DateToStr(DateTime);
                                 int accI_new,accI_recv,accI_send;
                                 DateTime = Date();
                                 dateS = DateToStr(DateTime);

                                 CreateDir(dateS.c_str());
                                 memset(muluS,0,sizeof(muluS));
                                 sprintf(muluS,"%s\\new", dateS.c_str()) ;
                                 CreateDir(muluS);
                                 sprintf(muluS,"%s\\send", dateS.c_str()) ;
                                 CreateDir(muluS);
                                 sprintf(muluS,"%s\\recv", dateS.c_str()) ;
                                 CreateDir(muluS);
                                 sprintf(muluS,"%s\\qury", dateS.c_str()) ;
                                 CreateDir(muluS);
                                 //fpacc
                                 sprintf(fileName,"%s\\send\\acc\0", dateS.c_str()) ;
                                        fprintf(fpD,"\n\n\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&开始\n===%s\n", fileName) ;
                                 if(FileExists(fileName))
                                 {
                                                memset(accS,0x00,sizeof(accS));
                                                fp=fopen(fileName,"r") ;
                                                fgets(accS,10,fp);
                                                fclose(fp);
                                                accI_send=atoi(accS);
                                                if(accI_send<=0)
                                                        accI_send=0;

                                 }else
                                 {
                                                //fp  =fopen(fileName,"w") ;
                                                //fclose(fp );
                                                 accI_send=0;
                                 }
                                 sprintf(fileName ,"%s\\recv\\acc\0", dateS.c_str()) ;
                                 if(FileExists(fileName ))
                                 {
                                               memset(accS,0x00,sizeof(accS));
                                               fp =fopen(fileName ,"r") ;
                                               fgets(accS,10,fp);
                                               fclose(fp);
                                               accI_recv=atoi(accS);
                                               if(accI_recv<=0)
                                                    accI_recv=0;

                                 }else
                                 {
                                               //fp =fopen(fileName,"w") ;
                                                //fclose(fp);
                                                       accI_recv=0;
                                 }
                                 sprintf(fileName,"%s\\new\\acc\0", dateS.c_str()) ;
                                 fprintf(fpD,"%s\n", fileName) ;
                                 if(FileExists(fileName))
                                 {
                                               memset(accS,0x00,sizeof(accS));
                                               fp=fopen(fileName,"r") ;
                                               fprintf(fpD,"%s\n", fileName) ;
                                               fgets(accS,10,fp);
                                               fclose(fp);
                                               accI_new=atoi(accS);
                                               if(accI_new<=0)
                                                        accI_new=0;

                                 }else
                                 {
                                                //fp=fopen(fileName,"w") ;
                                               //fclose(fp);
                                                accI_new=0;
                                 }
                                 fprintf(fpD,"accI_new=%d,accI_recv=%d,acc_send=%d\n",accI_new,accI_recv,accI_send);
                                 //int sendacc=accI_new;
                                 fflush(fpD);
                                 char ShouJiHao[128],ShouJiHao2[128],NeiRong[1024];

                                 for(int i=accI_send+1;i<accI_new+1;i++)  //发送信新的短信
                                 {
                                                fprintf(fpD,"star....%d,accI_new=%d,accI_recv=%d,acc_send=%d\n",i,accI_new,accI_recv,accI_send);
                                                memset( NeiRong,0x00,sizeof(NeiRong));
                                                int j=0;

                                                sprintf(fileName,"%s\\new\\DA%d\0", dateS.c_str(),i) ;
                                                fp=fopen(fileName,"r") ;
                                                fprintf(fpD,"new-name=%s\n",fileName);
                                                while (!feof(fp )) {

                                                        NeiRong[j]=fgetc(fp );    //取得发送内容
                                                         j++;
                                                }


                                                j=strlen( NeiRong);
                                                NeiRong[j-1]='\0';
                                                GuoLvCh(NeiRong);
                                                // strcat(NeiRong,"  ");

                                                fclose(fp);

                                                        fprintf(fpD,"sms_neirong=[%s]\n",NeiRong);

                                                //--------------------------------------------------------------
                                                j=strlen( NeiRong);
                                                fasongLENS=j;
                                                String lens;
                                                char lens2[2];
                                                lens  = IntToHex(j,2);
                                                strcpy(lens2,lens.c_str()) ;

                                                fprintf(fpD,"len2=%s,%d\n",lens2,fasongLENS );   fflush(fpD);

                                                //--------------------------------------------------------------
                                                //---------内容转换-------------------------------------------

                                                int n,len,cur;
                                                String tempstr,returnstr,InputStr;
                                                unsigned char mid1[2],mid2[2];
                                                InputStr=NeiRong;
                                                returnstr=EncodeChinese(InputStr);
                                                strcpy(NeiRong, returnstr.c_str());

                                                fprintf(fpD,"sms_neirong_2=[%s]\n",NeiRong); fflush(fpD);


                                                //----------------------------------------------------

                                                //----------------------------------------
                                                j=0;
                                                sprintf(fileName,"%s\\new\\R%d\0", dateS.c_str(),i) ;
                                                fp=fopen(fileName,"r") ;
                                                while (!feof(fp )) {
                                                        memset( ShouJiHao,0x00,sizeof(ShouJiHao));
                                                        memset( ShouJiHao2,0x00,sizeof(ShouJiHao2));
                                                        fgets(ShouJiHao,128,fp ); //取得收机号

                                                        if(ShouJiHao[0]=='*') break;

                                                                fprintf(fpD,"name=[%s]\n",ShouJiHao);   fflush(fpD);
                                                        Tgetstring( ShouJiHao , 1,ShouJiHao2,';') ;

                                                        GuoLvCh(ShouJiHao2 ) ;
                                                                fprintf(fpD,"name3=[%s]\n",ShouJiHao2);  fflush(fpD);

                                                        GetPrivateProfileString("cust",ShouJiHao2,ShouJiHao2,ShouJiHao,512, "./cust/cust");

                                                        if(strlen(ShouJiHao)>12) continue;
                                                        //ShouJiHao[11]='\0';
                                                                fprintf(fpD,"name4=[%s]\n",ShouJiHao2);  fflush(fpD);
                                                        GuoLvCh(ShouJiHao ) ;
                                                                fprintf(fpD,"shouji_code=[%s],strlen(ShouJiHao)=%d\n",ShouJiHao,strlen(ShouJiHao));
                                                        //---------------手机号码长度 -----

                                                        int jjj=strlen(ShouJiHao);
                                                         String SJlen= IntToHex(jjj,2);
                                                         char shoujiLEN[2];
                                                         memset(shoujiLEN,0,sizeof(shoujiLEN));
                                                         strcpy(shoujiLEN,SJlen.c_str());

                                                        //---------------------------------
                                                        if(strlen(ShouJiHao)!=11) continue;
                                                        String SJH=ShouJiHao;
                                                        TsmsCode(ShouJiHao , ShouJiHao2);
                                                        fprintf(fpD,"shouji_code2=%s\n",ShouJiHao2);
                                                        char smsCO1[20],smsCO2[20];
                                                        memset(smsCO1,0,sizeof(smsCO1));
                                                        memset(smsCO2,0,sizeof(smsCO2));
                                                        GetPrivateProfileString("SET","SMSCODE","0000000000",smsCO1,14, "./server.txt");
                                                                fprintf(fpD,"smsCO1=[%s]\n",smsCO1);
                                                        TsmsCode(smsCO1,smsCO2);
                                                                fprintf(fpD,"smsCO2=[%s]\n",smsCO2);
                                                        char ss[4096];
                                                        memset(ss,0,sizeof(ss));
                                                        //sss="0891"+smsCO2;//+"11000B81"+ShouJiHao2+"000010"+lens2+NeiRong;
                                                        strcpy(ss,"0891");
                                                        strcat(ss,smsCO2);
                                                        //----------------------------

                                                        strcat(ss,"1100");
                                                        strcat(ss,shoujiLEN);
                                                        strcat(ss,"81");

                                                        //---------------------
                                                        //strcat(ss,"11000B81");
                                                        // strcat(ss,"11000D91");
                                                        strcat(ss,ShouJiHao2);
                                                        strcat(ss,"0008A7");
                                                                fprintf(fpD,"sms_neirong_3=[%s]\n",NeiRong);
                                                        int jj =strlen(NeiRong)/2;

                                                        lens  = IntToHex(jj,2);
                                                        strcpy(lens2,lens.c_str());

⌨️ 快捷键说明

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