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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? demo.c

?? 里面有相應的hpunix(HP-UX hpl1000 B.11.00 U 9000/800 (tb)),linux(Red Hat Linux release 9 Kernel 2.4.20-8),w
?? C
字號:
/***************************************************************************  Copyright    : 2001-2002, ASPIRE TECHNOLOGIES (SHENZHEN) LTD.  Program ID   : demo.c  Description  : API示例程序  Version      : 1.6  ***************************************************************************/#include "demo.h"#include <signal.h>const  int MaxSendPkgNum  = 10000;  //發(fā)送Submit包數(shù) const  int TimeOut        = 10;   //接收包超時const  int nShowPkg       = 1;    //是否顯示包內(nèi)容    static RecCmppApi     grecCmppApi;static int            gnExitAllThread = 0;#ifdef WIN32int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *pProcAddr,const void *arg){    DWORD   dw;    *thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)pProcAddr, (LPVOID)arg, 0, &dw);    if( *thread != NULL)        return 0;    return -1;}int pthread_join(pthread_t thread,void *value_ptr){    WaitForSingleObject( thread, INFINITE );    CloseHandle(thread);    return 0;}#endifvoid vMarkSign(){#ifndef WIN32    signal(SIGTERM,SIG_IGN);    signal(SIGHUP,SIG_IGN);    signal(SIGPIPE,SIG_IGN);    signal(SIGALRM,SIG_IGN);        signal(SIGURG,SIG_IGN);    signal(SIGCONT,SIG_IGN);    signal(SIGCHLD,SIG_IGN);    signal(SIGTTIN,SIG_IGN);    signal(SIGTTOU,SIG_IGN);    signal(SIGIO,SIG_IGN);#endif}int  InitWSA(){#ifdef WIN32    WORD wVersionRequested;    WSADATA wsaData;    int err;    wVersionRequested = MAKEWORD( 2, 2 );    err = WSAStartup( wVersionRequested, &wsaData );    if ( err != 0 ) {        return -1;    }    if ( LOBYTE( wsaData.wVersion ) != 2 ||            HIBYTE( wsaData.wVersion ) != 2 ) {        WSACleanup( );        return -1;     }#endif    return 0;}void CleanWSA(){#ifdef WIN32    WSACleanup();#endif}//打印回執(zhí)內(nèi)容void vPrintReceipt(recCmppReceiptBody rCmppReceiptBody){    printf("\tCMPP RECEIPT CONTENT:\n"            "\t\tMsgId           =%02x %02x %02x %02x %02x %02x %02x %02x\n"            "\t\tchStat          =%s\n "            "\t\tSubmitTime      =%s\n "            "\t\tDoneTime        =%s\n "            "\t\tDestTerminalId  =%s\n "            "\t\tSmscSequenceId  =%d\n\n ",            rCmppReceiptBody.uchMsgId[0],            rCmppReceiptBody.uchMsgId[1],            rCmppReceiptBody.uchMsgId[2],            rCmppReceiptBody.uchMsgId[3],            rCmppReceiptBody.uchMsgId[4],            rCmppReceiptBody.uchMsgId[5],            rCmppReceiptBody.uchMsgId[6],            rCmppReceiptBody.uchMsgId[7],                          rCmppReceiptBody.chStat,            rCmppReceiptBody.chSubmitTime,            rCmppReceiptBody.chDoneTime,            rCmppReceiptBody.chDestTerminalId,            rCmppReceiptBody.unSmscSequence );           }//打印Deliver包內(nèi)容void vPrintDeliver(recCmppDeliver rCmppDeliver){	printf("\tCMPP Deliver CONTENT:\n"	       "\t\tMsgId         =%s\n"	       "\t\tDestId        =%s\n"	       "\t\tServid        =%s\n"	       "\t\tTpPid         =0x%2x\n"	       "\t\tTpUdhi        =0x%2x\n"	       "\t\tMsgFmt        =0x%2x\n"	       "\t\tSrcTermId     =%s\n"	       "\t\tSrcTermIdType =0x%2x\n"	       "\t\tRegisterDel   =0x%2x\n"	       "\t\tMsg_Len       =0x%2x\n"	       "\t\tMsgContent    =%s\n"	       "\t\tLinkId       =%s\n",	       rCmppDeliver.uchMsgId,	       rCmppDeliver.chDestId,	       rCmppDeliver.chServiceId,	       rCmppDeliver.ucTpPid,	       rCmppDeliver.ucTpUdhi,	       rCmppDeliver.ucMsgFmt,	       rCmppDeliver.chSrcTerminalId,	       rCmppDeliver.ucSrcTerminalType,	       rCmppDeliver.ucRegisterDelivery,	       rCmppDeliver.ucMsgLength,	       rCmppDeliver.chMsgContent,	       rCmppDeliver.chLinkId);	}//重新初始化API接口int nReInitInterface(){    int nRetry;    int nRet;    nRet =0 ;    nRetry = 0;       if(grecCmppApi.nInterfaceFlag ==  INITING || grecCmppApi.nInterfaceFlag != EXIT)    {        return 0;    }        grecCmppApi.nInterfaceFlag = INITING;        while(nRetry < 30  )    {        printf("\tReInitInterface,retry time <%d>\n\n",nRetry);                        nRet = nHInitInterface("cmppapi.ini");        if(API_OK == nRet)        {            grecCmppApi.nInterfaceFlag = INITED;            return 0;        }        nRetry++;        sleep(1);    }        grecCmppApi.nInterfaceFlag = EXIT;    return -1;    }//發(fā)包線程函數(shù)void *vSendPkg(){    int                 nSendPacketNum;        int                 nRet;    char                sLastTermId[100];    char                sMsgId[21];    char                chResult;    recSubmit           rSubmit;    //初始化    nSendPacketNum = 0;    	chResult       = 0;        //發(fā)包主循環(huán)    while(1)    {        //Ctrl+C退出        if(gnExitAllThread)        {            printf("\tsend thread exit by Ctrl+c !\n\n");            return NULL;        }                //判斷是否發(fā)送完畢                 if(nSendPacketNum > MaxSendPkgNum)        {            printf("\tsend thread exit normally!\n\n");            return NULL;        }        //連接是否可用        if(grecCmppApi.nInterfaceFlag != INITED )        {            usleep(10);            continue;        }        memset(sMsgId, 0 , sizeof(sMsgId));		        memset( &rSubmit, 0, sizeof( recSubmit ) );        //strcpy( rSubmit.sInMsgId,  "12345678" );        //strcpy( rSubmit.sFeeTerminalId,  "13900010001" );            strcpy( rSubmit.sFeeType,  MacFeeType_Free );        rSubmit.nFeeCode = 0;        strcpy( rSubmit.sServiceId,  "QXYG" );        rSubmit.ucTpPid = 0 ;        rSubmit.ucTpUdhi = 0;        strcpy( rSubmit.sSrcId,  "222222" );        rSubmit.ucPkTotal = 1;        rSubmit.ucPkNumber = 1;        rSubmit.ucFeeTerminalType = 0;      //  strcpy(rSubmit.sFeeTerminalId, "13910000001");     //   strcpy(rSubmit.sLinkId, "12345678901234567890");            nRet = nHSubmit(                         &rSubmit,                        "13530300001",                        0,                        MSG_FORMAT_GB, //unsigned char ucMsgFmt,                        10,               //const unsigned char ucMsgLength,                        "1234567890",    //const char *sMsgContent,                        sMsgId,          // unsigned char *sMsgId,                        &chResult,                        sLastTermId                   );        //如果發(fā)送成功        if( API_OK == nRet )        {                    printf("\tsend submit success!count=[%d]\n\n",nSendPacketNum);            if(chResult != 0)            {                printf("\tsubmit result =%d\n\n",chResult);            }                                }        //如果返回的協(xié)議錯誤	    else if(nRet ==  API_ERR_RESP)	    {	    	printf("\tsubmit fail ,please check to ensure nHsubmit parameter is correct!the count is [%d]\n\n",nSendPacketNum);	    		    }        //如果發(fā)送超時        else if(nRet == API_ERR_TIMEOUT)        {           	        	printf("\tsend the message timeout ,the count is [%d]\n\n",nSendPacketNum);            grecCmppApi.nSendFailNum++;                    }        else         {                      //打印錯誤信息            printf("\tError:%s,the count is [%d]\n\n",sGetErrorDetail(),nSendPacketNum);                        grecCmppApi.nSendFailNum++;            //退出接口            nRet = nHExitInterface();                        if(nRet <  0 )            {                printf("\tExitInterface Fail!\n\n");                return NULL;            }                        //重新初始化            grecCmppApi.nInterfaceFlag = EXIT;            nRet = nReInitInterface();            if(nRet <  0 )            {                printf("\tnReInitInterface Fail, send thread Exit!\n\n");                return NULL;            }                                }        nSendPacketNum++;                   }        return NULL;}//收包線程函數(shù)void *vRecvPkg(void *nNum){    int                 nReceiptOrNot;    int                 nRet;    int                 nSequence;      time_t              timetCurrent;    time_t              timetRecvLast;            recCmppDeliver      myDeliver;    recCmppReceiptBody  myReceiptBody;            //初始化    nReceiptOrNot = 0;    nRet          = 0;    nSequence     = 0;    time(&timetCurrent);    time(&timetRecvLast);            //收包主循環(huán)    while(1)    {        time(&timetCurrent);                //超時沒有收到包退出線程        if(  timetCurrent - timetRecvLast > TimeOut)        {                printf("\trecv thread  exit by time out!\n\n");                return NULL;                        }        //Ctrl+C退出        if(gnExitAllThread)        {            printf("\trecv thread exit by Ctrl+c !\n\n");            return NULL;        }                if(grecCmppApi.nInterfaceFlag != INITED )        {            usleep(10);            continue;        }                //收包                memset(&myReceiptBody , 0 , sizeof(myReceiptBody));        memset(&myDeliver , 0 , sizeof(myDeliver));        //接收Deliver        nRet = nHGetDeliver(&nReceiptOrNot,                    &nSequence,                    &myDeliver,                    &myReceiptBody,                    10                    );        //如果沒有包        if(nRet == API_NOCELL)        {            usleep(10);        }        //如果收包成功        else if( nRet == API_OK)        {               printf("\tReceive a delivery packet\n\n");            grecCmppApi.nRecvDeliverNum++;            //打印Deliver包            if(nShowPkg)            {                vPrintDeliver(myDeliver);            }            //如果是回執(zhí)            if( nReceiptOrNot == 1)            {                grecCmppApi.nRecvReceiptNum++;                                //打印回執(zhí)包                if(nShowPkg)                {                    vPrintReceipt(myReceiptBody);                }                            }                        //記錄時間            time(&timetRecvLast);                                            }        //如果收包失敗        else        {            printf("\tget deliver return %d\n\n",nRet);            usleep(10);                    }                    }            return NULL;}//設(shè)置線程退出標志void *vKillThread(){        gnExitAllThread = 1;    printf("\tset thread exit flag succ!\n\n");    return NULL;}//主函數(shù)int main(int argc ,char *argv[]){    int  nRet;                  //初始化    nRet = 0;    vMarkSign();    InitWSA();    memset(&grecCmppApi,0 , sizeof(grecCmppApi));    //初始化API接口         nRet = nHInitInterface( "cmppapi.ini");    if(0 > nRet)    {        printf("\tInit Fail ,Return Code = %d\n\n",nRet);		printf( "error reason = %s\n", sGetErrorReason( nRet ) );        return -1;    }               grecCmppApi.nInterfaceFlag = INITED;        //啟動線程        nRet = pthread_create((void*)&grecCmppApi.nSendThreadId,NULL,                           vSendPkg,NULL);    if(nRet != 0)    {        printf("\tFail to  create send  packet thread \n\n");        return -1;    }    else    {        printf("\tSucc to  create send  packet thread \n\n");    }    nRet = pthread_create((void *)&grecCmppApi.nRecvThreadId,NULL,                           vRecvPkg,NULL);    if(nRet != 0)    {        printf("\tFail to  create receive packet thread \n\n");        return -1;    }    else    {        printf("\tSucc to  create receive packet thread \n\n");    }    //中斷處理函數(shù)    signal(SIGINT,(void *)vKillThread);    //等待線程結(jié)束    nRet = pthread_join(grecCmppApi.nSendThreadId,NULL);    if(nRet != 0)    {        printf("\tFail to  join send  packet thread\n\n");    }        nRet = pthread_join(grecCmppApi.nRecvThreadId,NULL);    if(nRet != 0)    {        printf("\tFail to  join receive packet thread \n\n");    }    //退出API接口    nHExitInterface();    //顯示結(jié)果    printf("\n\n\t================Statistic Result:===================\n\n");    printf("\tReceive Deliver Packet Num = %d\n"           "\tReceive Receipt Packet Num = %d\n"           "\tSend fail Num = %d\n\n",            grecCmppApi.nRecvDeliverNum,            grecCmppApi.nRecvReceiptNum,            grecCmppApi.nSendFailNum    );                 printf("please input any key to end ......!\n\n");        scanf("!");        //結(jié)束處理    CleanWSA();    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品v| 久久精品国产亚洲5555| 国产成人午夜99999| 欧美一区二区三区影视| 国产欧美日韩亚州综合| 男女男精品视频| 欧美三区免费完整视频在线观看| 国产精品国产自产拍高清av | 99精品国产热久久91蜜凸| 精品福利一二区| 毛片av一区二区| 欧美一级欧美三级在线观看| 亚洲午夜日本在线观看| 欧美午夜在线观看| 国产夫妻精品视频| 久久综合成人精品亚洲另类欧美| 蜜桃视频在线观看一区| 日韩欧美高清一区| 国产自产高清不卡| 久久久精品影视| 成人午夜av电影| 中文字幕中文字幕一区| www.欧美色图| 一级中文字幕一区二区| 成人avav影音| 日韩亚洲欧美综合| 欧美一级片在线看| 麻豆传媒一区二区三区| 欧美人伦禁忌dvd放荡欲情| 午夜婷婷国产麻豆精品| 3d动漫精品啪啪一区二区竹菊| 日韩一区欧美二区| 日韩一区二区麻豆国产| 国产一区二区三区av电影| 国产三级久久久| 色综合天天视频在线观看| 亚洲综合成人网| 日韩一级在线观看| 日韩国产欧美视频| 日韩精品一区二区三区在线播放| 黑人巨大精品欧美黑白配亚洲| 久久人人爽爽爽人久久久| 成人午夜在线免费| 亚洲成av人片一区二区| 欧美成人精品二区三区99精品| 国内精品久久久久影院薰衣草| 国产偷v国产偷v亚洲高清| 欧美变态tickling挠脚心| 精品一区二区在线播放| 自拍偷自拍亚洲精品播放| 欧美浪妇xxxx高跟鞋交| 婷婷久久综合九色综合绿巨人 | 日韩一区在线看| 欧美视频一区在线| 国产成人精品免费视频网站| 亚洲女女做受ⅹxx高潮| 欧美日韩极品在线观看一区| 国产精品99久久久久久宅男| 一区二区三区在线免费视频| 日韩欧美国产一区二区在线播放| bt欧美亚洲午夜电影天堂| 免费在线观看视频一区| 自拍偷在线精品自拍偷无码专区| 欧美一卡2卡三卡4卡5免费| www.色精品| 捆绑紧缚一区二区三区视频| 久久青草国产手机看片福利盒子 | 日韩免费在线观看| 色综合色狠狠综合色| 婷婷国产v国产偷v亚洲高清| 国产香蕉久久精品综合网| 欧美日韩一本到| 99久久精品国产观看| 国产专区欧美精品| 日韩国产在线观看| 亚洲在线视频免费观看| 国产精品久久久久影院老司| 欧美成人a∨高清免费观看| 欧美性生活一区| 91小视频免费观看| 99视频精品免费视频| 日韩精品一级二级| 一区二区三区中文字幕| 国产精品久久久久影院亚瑟 | 亚洲一区二区三区在线看| 国产色产综合色产在线视频| 欧美久久免费观看| 欧美视频在线观看一区二区| 99久久综合色| 成人黄色av电影| 日韩电影在线观看一区| 欧美蜜桃一区二区三区| 成人福利在线看| 国产传媒一区在线| 国产一区啦啦啦在线观看| 日本不卡123| 婷婷夜色潮精品综合在线| 亚洲一区在线观看网站| 亚洲色欲色欲www在线观看| 国产精品久久久久天堂| 国产日韩欧美在线一区| 精品少妇一区二区| 精品福利视频一区二区三区| 日韩一级高清毛片| 日韩亚洲欧美成人一区| 在线综合亚洲欧美在线视频| 欧美剧在线免费观看网站 | 精品处破学生在线二十三| 欧美大片拔萝卜| 精品福利一区二区三区免费视频| 精品成人在线观看| 国产欧美一区二区精品婷婷| 国产亚洲欧洲997久久综合| 欧美国产精品专区| 中文字幕亚洲电影| 亚洲精品欧美激情| 亚洲18色成人| 日韩精品电影在线| 久久99精品国产.久久久久久| 精品一区二区在线免费观看| 久久国产生活片100| 国产一区91精品张津瑜| 国产不卡一区视频| 色哟哟欧美精品| 欧美日韩精品福利| 26uuu亚洲| 欧美激情一区二区三区不卡| 久久久99久久| 亚洲三级理论片| 免费观看日韩电影| 成人一区二区在线观看| 欧美在线三级电影| 精品国产一区二区三区久久影院| 久久久久9999亚洲精品| 亚洲丝袜自拍清纯另类| 日韩综合一区二区| 国产成人无遮挡在线视频| 欧美疯狂做受xxxx富婆| 亚洲婷婷在线视频| 国产精品中文欧美| 8x福利精品第一导航| 亚洲欧美另类小说视频| 国产一区二区三区四 | 欧美日韩在线电影| 国产精品麻豆网站| 国内精品久久久久影院薰衣草| 欧美中文字幕不卡| 亚洲第一在线综合网站| 国产真实乱子伦精品视频| 91成人在线免费观看| 欧美激情综合五月色丁香| 精品国产网站在线观看| 亚洲狠狠爱一区二区三区| www.久久久久久久久| 精品国产1区二区| 日韩在线a电影| 精品视频一区二区不卡| 一区二区三区不卡视频| 成人午夜电影网站| 亚洲国产精品ⅴa在线观看| 国内精品不卡在线| 2023国产精品| 精品亚洲aⅴ乱码一区二区三区| 欧美妇女性影城| 亚洲国产成人高清精品| 欧美亚一区二区| 亚洲一区在线观看免费观看电影高清| 91在线精品一区二区| 国产精品久久久久久久午夜片| 懂色av一区二区三区蜜臀| 久久精品亚洲乱码伦伦中文| 精品在线你懂的| 久久精品人人做人人综合| 国产激情精品久久久第一区二区| 精品国产乱码久久久久久免费| 理论电影国产精品| 精品国产乱码久久久久久1区2区| 久久成人18免费观看| 2020国产精品| 日韩午夜小视频| 免费看日韩精品| 日韩欧美中文字幕制服| 国内外精品视频| 欧美国产97人人爽人人喊| av影院午夜一区| 一个色妞综合视频在线观看| 欧美日韩视频在线观看一区二区三区 | 欧美哺乳videos| 国产成人在线免费观看| 亚洲欧洲一区二区三区| 欧洲激情一区二区| 日韩精品国产精品| 久久精品人人做人人综合 | 99精品久久久久久| 亚洲国产sm捆绑调教视频| 91精品国产91久久综合桃花| 精品无人区卡一卡二卡三乱码免费卡 | 精品一区二区三区在线视频| 国产日韩在线不卡| 在线视频观看一区|