亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 移動短信.txt

?? 在編寫程序中還用到了開發工具Borland.C++.Builder.6.0
?? TXT
字號:
接收代碼
#include <vcl.h>
#pragma hdrstop

#include "RecvThread.h"
#include "funtion.h"
#include "Main.h"
#pragma package(smart_init)
//-------------------------------------------------------------------

//   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 TRecvThread::UpdateCaption()
//      {
//        Form1->Caption = "Updated in a thread";
//      }
//-------------------------------------------------------------------

__fastcall TRecvThread::TRecvThread(bool CreateSuspended)
    : TThread(CreateSuspended)
{
    FrmMain->WriteMemo(eRecv,"接收線程開始運行.");
}
//-------------------------------------------------------------------
void __fastcall TRecvThread::Execute()
{
    //---- Place thread code here ----
    int iRecvNum = 0;
    int status;
    RecvBody node;
    while(int i = login(&RecvConn,s_ip,i_port,s_user,s_pwd,1))
    {
          //顯示連接出錯,停N秒后重試, 不要忘了顯示i
          FrmMain->WriteMemo(eStatus,"接收型連接錯誤,錯誤代碼:" + IntToStr(i));
          FrmMain->WriteMemo(eStatus,"30秒后重新嘗試連接...");
          Sleep(30000);
    }
    FrmMain->WriteMemo(eStatus,"接收型連接成功");
    while(!Terminated)
    {
        status = Recv_MO(&RecvConn,&node);
        if(status > 0)
        {
            FrmMain->WriteMemo(eStatus,"接收短信出錯,錯誤代碼:"+ IntToStr(status));
            logout(&RecvConn);
            while(int i = login(&RecvConn,s_ip,i_port,s_user,s_pwd,1))
            {
                //顯示連接出錯,停N秒后重試, 不要忘了顯示i
                FrmMain->WriteMemo(eStatus,"接收型連接錯誤,錯誤代碼:" + IntToStr(i));
                FrmMain->WriteMemo(eStatus,"30秒后重新嘗試連接...");
                Sleep(30000);
            }
            FrmMain->WriteMemo(eStatus,"接收型連接成功");
        }
        else
        {
            if(node.sOrgAddr.IsEmpty())
                continue;
            rwLock->BeginWrite();//寫臨界變量,鎖定
            lstRecv.push_back(node);
            rwLock->EndWrite(); //開鎖

            iRecvNum++;
            FrmMain->WriteStatus(eRecv-1,"接收短信:" + IntToStr(iRecvNum) + "條");
            AnsiString str;
            str.sprintf("%s ---> %s ### %s",node.sOrgAddr,node.sDestAddr,node.sContent);
            FrmMain->WriteMemo(eRecv,str);
            /*try
            {
                FrmMain->LogProc->Params->Items[0]->AsString = node.sOrgAddr;
                FrmMain->LogProc->Params->Items[1]->AsString = node.sDestAddr;
                FrmMain->LogProc->Params->Items[2]->AsString = node.sContent;
                FrmMain->LogProc->Params->Items[3]->AsString = "";
                FrmMain->LogProc->Params->Items[4]->AsBCD = 0;
                FrmMain->LogProc->Params->Items[5]->AsBCD = 0;
                FrmMain->LogProc->Params->Items[6]->AsBCD = 0;
                FrmMain->LogProc->ExecProc();
            }
            catch(Exception &e)
            {
                FrmMain->WriteMemo(eStatus,"記錄過程出錯" + e.Message);
            }*/
        }
        if(!lstRecv.empty())
            ReleaseSemaphore(SemProcess,1,NULL);
    }
    logout(&RecvConn);
    FrmMain->WriteMemo(eRecv,"接收線程結束");
}

處理進程代碼
#include <vcl.h>
#pragma hdrstop

#include "ProcessThread.h"
#include "funtion.h"
#include "Main.h"
#pragma package(smart_init)
//-------------------------------------------------------------------

//   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 TProcessThread::UpdateCaption()
//      {
//        Form1->Caption = "Updated in a thread";
//      }
//-------------------------------------------------------------------

__fastcall TProcessThread::TProcessThread(bool CreateSuspended)
    : TThread(CreateSuspended)
{
    FrmMain->WriteMemo(eProcess,"處理線程開始運行.");
}
//-------------------------------------------------------------------
void __fastcall TProcessThread::Execute()
{
    //---- Place thread code here ----
    int iProcessNum = 0;
    RecvBody node;
    SendBody snode;
    AnsiString Str,sOrg,sDest,sContent;
    strList lstOrg,lstDest,lstContent;
    strList::iterator Orgitor;
    strList::iterator Destitor;
    strList::iterator Conitor;
    strList::iterator itor;


    FrmMain->DBXConn();
    while(!Terminated)
    {
        if(!lstSend.empty())
             ReleaseSemaphore(SemSend,1,NULL);

        if(lstRecv.empty())
            WaitForSingleObject(SemProcess,INFINITE);
        if(lstRecv.empty() || Terminated)
            continue;

        rwLock->BeginRead();
        node = lstRecv.front();
        rwLock->EndRead();

        rwLock->BeginWrite();
        lstRecv.pop_front();
        rwLock->EndWrite();

        iProcessNum++;
        FrmMain->WriteStatus(eProcess-1,"處理短信:" + IntToStr(iProcessNum) + "條");

        Str.sprintf("參數傳入:%s|%s###%s",node.sOrgAddr,node.sDestAddr,node.sContent);
        FrmMain->WriteMemo(eProcess,Str);

        try
        {
            //int i = FrmMain->ProcessProc->Params->Count;

            FrmMain->ProcessProc->Params->Items[0]->AsString = node.sOrgAddr;
            FrmMain->ProcessProc->Params->Items[1]->AsString = node.sDestAddr;
            FrmMain->ProcessProc->Params->Items[2]->AsString = node.sContent;
            FrmMain->ProcessProc->ExecProc();

            sOrg = FrmMain->ProcessProc->Params->Items[3]->AsString;
            sDest = FrmMain->ProcessProc->Params->Items[4]->AsString;
            sContent = FrmMain->ProcessProc->Params->Items[5]->AsString;

            snode.sSvc_Type = FrmMain->ProcessProc->Params->Items[6]->AsString;
            snode.iInfo_Fee = FrmMain->ProcessProc->Params->Items[7]->AsInteger;
            snode.iFee_User_Type = FrmMain->ProcessProc->Params->Items[8]->AsInteger;
            snode.iFee_Type = FrmMain->ProcessProc->Params->Items[9]->AsInteger;
            snode.sFee_User = FrmMain->ProcessProc->Params->Items[10]->AsString;
        }
        catch(Exception &e)
        {
            FrmMain->WriteMemo(eStatus,"存儲過程執行中出錯!" + e.Message);
            FrmMain->DBXConn();
        }

        snode.iSendFailure = 0;
        //---------------傳出數據的處理--------------------
        lstOrg = DeliStrConvert(sOrg,"|");
        lstDest = DeliStrConvert(sDest,"|");
        lstContent = DeliStrConvert(sContent,"|");

        //MMM
        if(lstOrg.size() == lstDest.size() && lstOrg.size() == lstContent.size())
        {
            Orgitor = lstOrg.begin();
            Destitor = lstDest.begin();
            Conitor = lstContent.begin();
            while(Destitor != lstDest.end())
            {
                snode.sDestAddr = *Destitor++;
                snode.sOrgAddr = *Orgitor++;
                snode.sContent = *Conitor++;

                rwLock->BeginWrite();
                lstSend.push_back(snode);
                rwLock->EndWrite();

                Str = snode.sOrgAddr + "-->" + snode.sDestAddr + ">>>>>"
                    + snode.sContent + "|" +snode.sSvc_Type + "|"
                    + IntToStr(snode.iInfo_Fee) + "|" + IntToStr(snode.iFee_User_Type)
                    + "|" + IntToStr(snode.iFee_Type);
                FrmMain->WriteMemo(eProcess,"處理結果:" + Str);
            }
            continue;
        }
       FrmMain->WriteMemo(eStatus,"過程參數傳出不在可處理的范圍內.");
    }
    FrmMain->WriteMemo(eProcess,"處理線程結束");
}

關于處理過程再舉個在Oracle上的一個存儲過程的實例:(移動的歡樂家庭投票過程)
CREATE OR REPLACE PROCEDURE BAOWL_health_family_PROC --主過程
( RECV_ORG IN  VARCHAR2,RECV_DEST IN  VARCHAR2,RECV_CONTENT IN VARCHAR2,
 SEND_ORG OUT VARCHAR2,SEND_DEST OUT VARCHAR2,MSG OUT VARCHAR2,
 SVC_TYPE OUT VARCHAR2,INFO_FEE OUT NUMBER,FEE_USER_TYPE OUT NUMBER,FEE_TYPE OUT NUMBER,FEE_USER OUT VARCHAR2)
AS
  
BEGIN
  SEND_ORG:=RECV_DEST;
  SEND_DEST:=RECV_ORG;
  
  SVC_TYPE:='HELP';
  INFO_FEE:=0;      --
  FEE_USER_TYPE:=0;  --對目標終端收費
  FEE_TYPE:=1;	     --免費
  FEE_USER:='';
    
  IF to_char(sysdate,'yyyymmdd') > '20051223' THEN
     MSG := '尊敬的用戶,此活動已經結束!';
     RETURN;
  END IF;
  
  IF TO_NUMBER(trim(RECV_CONTENT)) > 0 AND
     TO_NUMBER(trim(RECV_CONTENT)) < 11 THEN
      INSERT INTO  baowl_health_family 
           VALUES  (RECV_ORG,
                    sysdate,
                    TO_NUMBER(RECV_CONTENT));
      COMMIT;
      MSG :=  '你已成功投票給' || trim(RECV_CONTENT) || '號家庭,謝謝你投上寶貴的一票!';
      RETURN;
  END IF;

  MSG :=  '請選擇正確的家庭號碼(1到10號),謝謝你的參與!';
  RETURN;

  exception when others then
   MSG :=  '請選擇正確的家庭號碼(1到10號),謝謝你的參與!';
   RETURN;
  
END;

發送進程代碼
#include <vcl.h>
#pragma hdrstop

#include "SendThread.h"
#include "funtion.h"
#include "Main.h"
#pragma package(smart_init)
//-------------------------------------------------------------------

//   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 TSendThread::UpdateCaption()
//      {
//        Form1->Caption = "Updated in a thread";
//      }
//-------------------------------------------------------------------

__fastcall TSendThread::TSendThread(bool CreateSuspended)
    : TThread(CreateSuspended)
{
    FrmMain->WriteMemo(eSend,"發送線程開始運行.");
}
//-------------------------------------------------------------------
void __fastcall TSendThread::Execute()
{
    //---- Place thread code here ----
    int iSendNum = 0;
    AnsiString str;
    int status;
    SendBody node;
    while(int i = login(&SendConn,s_ip,i_port,s_user,s_pwd,0))
    {
          //顯示連接出錯,停N秒后重試, 不要忘了顯示i
          FrmMain->WriteMemo(eStatus,"發送型連接錯誤,錯誤代碼:" + IntToStr(i));
          FrmMain->WriteMemo(eStatus,"30秒后重新嘗試連接...");
          Sleep(30000);
    }
    FrmMain->WriteMemo(eStatus,"發送型連接成功");

    while(!Terminated)
    {
        if(lstSend.empty())
            WaitForSingleObject(SemSend,INFINITE);

        if(lstSend.empty() || Terminated)
            continue;

        rwLock->BeginRead();
        node = lstSend.front();
        rwLock->EndRead();

        rwLock->BeginWrite();
        lstSend.pop_front();
        rwLock->EndWrite();

        if(node.sOrgAddr.IsEmpty() || node.sDestAddr.IsEmpty() || node.sContent.IsEmpty())
            continue;

        iSendNum++;
        FrmMain->WriteStatus(int(eSend)-1,"發送短信:" + IntToStr(iSendNum) + "條");
        cmppe_submit cs;
        cmppe_submit_sm_init(&cs);

        //設置短信內容(固定的)
        strcpy(cs.icp_id,s_user);

        cs.priority = 9;
        cs.msg_mode = 1;
        cs.proto_id = 1;
        cs.data_coding = 15;
        strcpy(cs.schedule,"");
        strcpy(cs.validate,"");
        cs.du_count = 1;
        strcpy(cs.fee_user,"");

        //設置短信內容(從隊列中取)
        strcpy(cs.short_msg,node.sContent.c_str());
        cs.sm_len = strlen(node.sContent.c_str());

        strcpy(cs.src_addr,node.sOrgAddr.c_str());
        strcpy(cs.dst_addr[0],node.sDestAddr.c_str());
        strcpy(cs.svc_type,node.sSvc_Type.c_str());
        cs.fee_type = node.iFee_Type;
        cs.info_fee = node.iInfo_Fee;
        cs.fee_utype = node.iFee_User_Type;
        strcpy(cs.fee_user,node.sFee_User.c_str());

        //短信發送
        status = SendMessage(&SendConn,cs);

        str = IntToStr(status) +"   "+ node.sOrgAddr + "-->" + node.sDestAddr + ">>>>>"
            + node.sContent + "|" +node.sSvc_Type + "|"
            + IntToStr(node.iInfo_Fee) + "|" + IntToStr(node.iFee_User_Type)
            + "|" + IntToStr(node.iFee_Type);
        FrmMain->WriteMemo(eSend,"短信發送:" + str);
        if(status >0)
        {
            if(node.iSendFailure < i_resend)
            {
                node.iSendFailure++;
                rwLock->BeginWrite();
                lstSend.push_back(node);
                rwLock->EndWrite();
            }
            if(status != SEND_SMG_ERR  || status != SEND_REV_ERR)
            {
                FrmMain->WriteMemo(eStatus,"發送短信出錯,錯誤代碼:"+ IntToStr(status));
                logout(&SendConn);
                while(int i = login(&SendConn,s_ip,i_port,s_user,s_pwd,0))
                {
                    //顯示連接出錯,停N秒后重試, 不要忘了顯示i
                    FrmMain->WriteMemo(eStatus,"發送型連接錯誤,錯誤代碼:" + IntToStr(i));
                    FrmMain->WriteMemo(eStatus,"30秒后重新嘗試連接...");
                    Sleep(30000);
                }
                FrmMain->WriteMemo(eStatus,"發送型連接成功");
            }
        }
        else
        {
            /*try
            {
                FrmMain->LogProc->Params->Items[0]->AsString = node.sOrgAddr;
                FrmMain->LogProc->Params->Items[1]->AsString = node.sDestAddr;
                FrmMain->LogProc->Params->Items[2]->AsString = node.sContent;
                FrmMain->LogProc->Params->Items[3]->AsString = node.sSvc_Type;
                FrmMain->LogProc->Params->Items[4]->AsBCD = node.iInfo_Fee;
                FrmMain->LogProc->Params->Items[5]->AsBCD = node.iFee_User_Type;
                FrmMain->LogProc->Params->Items[6]->AsBCD = node.iFee_Type;
                FrmMain->LogProc->ExecProc();
            }
            catch(Exception &e)
            {
                FrmMain->WriteMemo(eStatus,"記錄過程出錯" + e.Message);
            }*/
        }

    }
    logout(&SendConn);
    FrmMain->WriteMemo(eSend,"發送線程結束");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品国产一区二区三区 | 国产成人在线网站| 成人美女视频在线观看| 91麻豆精品久久久久蜜臀| 国产精品无遮挡| 久久精品国产第一区二区三区 | 日本午夜一本久久久综合| 丰满亚洲少妇av| 日韩一级片网址| 亚洲男人的天堂av| 国产精品一区二区在线观看不卡| 欧美日韩午夜精品| 亚洲同性同志一二三专区| 国产在线视频不卡二| 制服丝袜中文字幕一区| 亚洲影视资源网| 91论坛在线播放| 国产精品视频九色porn| 国产成人精品免费视频网站| 欧美午夜精品久久久久久孕妇 | 国产精品麻豆视频| 国产专区综合网| 欧美成人猛片aaaaaaa| 国内偷窥港台综合视频在线播放| 色噜噜久久综合| 亚洲免费观看在线观看| 成人av电影免费在线播放| 久久久91精品国产一区二区精品 | 狠狠久久亚洲欧美| 日韩免费在线观看| 开心九九激情九九欧美日韩精美视频电影| 欧美视频一区二区在线观看| 亚洲夂夂婷婷色拍ww47 | 一区二区三区鲁丝不卡| 白白色 亚洲乱淫| 亚洲色图在线看| 色偷偷久久人人79超碰人人澡 | 亚洲高清免费视频| 欧美日韩大陆一区二区| 日韩二区三区在线观看| 日韩一区二区三区三四区视频在线观看 | 精品一区二区免费在线观看| 精品免费视频一区二区| 国内成人免费视频| 国产三级欧美三级日产三级99| 国产制服丝袜一区| 国产精品成人网| 欧美色电影在线| 日本午夜精品一区二区三区电影 | 麻豆成人久久精品二区三区小说| 国产精品五月天| 色噜噜久久综合| 日韩电影免费在线看| 精品国产乱码久久| 成人h动漫精品一区二区| 亚洲精品日韩综合观看成人91| 欧美在线免费观看亚洲| 美国精品在线观看| 欧美激情一区二区| 欧美亚洲综合色| 久久精品久久久精品美女| 国产日韩欧美精品一区| 91黄色免费观看| 老司机精品视频一区二区三区| 国产日韩三级在线| 欧美情侣在线播放| 国产精品亚洲专一区二区三区| 亚洲日本韩国一区| 日韩欧美一区中文| 99精品视频在线观看| 免费在线观看一区| 亚洲欧洲在线观看av| 8v天堂国产在线一区二区| 国产91在线观看| 亚洲超丰满肉感bbw| 国产偷国产偷精品高清尤物 | 在线观看日韩av先锋影音电影院| 麻豆国产欧美日韩综合精品二区| 亚洲人成网站影音先锋播放| 欧美一区欧美二区| 色综合天天综合狠狠| 韩国一区二区在线观看| 亚洲国产成人av| 亚洲国产精品av| 日韩欧美中文字幕公布| 色丁香久综合在线久综合在线观看| 美女任你摸久久| 亚洲一区二区三区自拍| 国产精品国产三级国产aⅴ入口 | 久久精品一区二区| 欧美一区二区视频网站| 91麻豆国产福利在线观看| 国产精品一区二区久久精品爱涩| 亚洲国产另类精品专区| 日韩一区欧美一区| 欧美国产激情二区三区 | 亚洲色欲色欲www| 精品国产123| 日韩一区二区在线免费观看| 欧美性一级生活| 日本精品视频一区二区| 北条麻妃一区二区三区| 粉嫩久久99精品久久久久久夜| 美女视频网站黄色亚洲| 日本人妖一区二区| 亚洲国产日韩综合久久精品| 亚洲美女一区二区三区| 中文字幕一区二区三区四区| 国产欧美1区2区3区| 久久伊人蜜桃av一区二区| 欧美v亚洲v综合ⅴ国产v| 欧美高清性hdvideosex| 精品视频全国免费看| 欧美性大战久久久| 在线免费观看成人短视频| 一本大道av伊人久久综合| 91免费看`日韩一区二区| 99v久久综合狠狠综合久久| 99久久99久久免费精品蜜臀| 97精品国产露脸对白| 色综合久久综合网欧美综合网| 91麻豆免费看| 欧美视频一二三区| 91精品欧美久久久久久动漫| 欧美一区二区三区四区视频| 日韩欧美激情四射| 久久久精品欧美丰满| 国产免费成人在线视频| 国产精品高潮呻吟久久| 自拍偷拍国产精品| 亚洲自拍偷拍av| 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩福利视频网| 美女精品自拍一二三四| 国产露脸91国语对白| 99在线热播精品免费| 欧美色综合网站| 欧美一卡2卡3卡4卡| 国产亚洲欧美色| 成人欧美一区二区三区小说| 亚洲国产精品影院| 久久99精品一区二区三区三区| 国产成人午夜99999| 色婷婷久久久亚洲一区二区三区 | 91最新地址在线播放| 国产日本欧美一区二区| 国产精品视频在线看| 亚洲国产精品久久久久秋霞影院 | 日韩视频一区二区三区在线播放| 久久久精品人体av艺术| 一级女性全黄久久生活片免费| 首页国产欧美日韩丝袜| 国产高清在线观看免费不卡| 欧美综合视频在线观看| 精品国产露脸精彩对白| 樱桃国产成人精品视频| 国产在线视频一区二区| 欧美日韩专区在线| 久久亚洲影视婷婷| 亚洲在线中文字幕| 国产99久久精品| 91麻豆精品国产无毒不卡在线观看| 国产亚洲精品7777| 日欧美一区二区| 成人精品鲁一区一区二区| 欧美一级日韩不卡播放免费| 成人欧美一区二区三区小说 | 床上的激情91.| 欧美一级二级三级乱码| 亚洲图片激情小说| 国产激情一区二区三区四区| 欧美亚洲综合一区| 亚洲日本在线视频观看| 国产成人精品免费| 日韩精品一区二区三区蜜臀| 一区二区三区精品视频在线| 成人影视亚洲图片在线| 精品99久久久久久| 日韩精品福利网| 欧美午夜电影网| 亚洲女女做受ⅹxx高潮| 成人黄色一级视频| 国产区在线观看成人精品| 秋霞av亚洲一区二区三| 欧美日韩视频专区在线播放| 亚洲综合激情另类小说区| 成人动漫精品一区二区| 国产日本欧美一区二区| 国产一区二区调教| 欧美va在线播放| 久久精品国产亚洲5555| 欧美日韩国产另类不卡| 一区二区三区日韩精品视频| 色综合一区二区三区| 亚洲丝袜另类动漫二区| 99久久免费国产| 亚洲欧洲成人精品av97| 不卡的av中国片| 1区2区3区精品视频| k8久久久一区二区三区|