📄 testapi.c
字号:
#include "cmppapi.h"#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main( int argc, char** argv ){// CONNFD FD; int nRet ;// int i; char sMsgId[ 9 ]; unsigned char chResult; char sLastTerminateId[ 21 ]; int nReceiptOrNot; unsigned int unSequenceId; recCmppDeliver rCmppDeliver; recCmppReceiptBody rReceiptBody; recSubmit rSubmit; /* for( i=0; i<40000; i++ ) { printf( "reconnect \n" ); nRet = nInitInterface( "cmppapi.ini", &FD ); if( nRet != API_OK ) { printf( "nRet = %d\n", nRet ); printf( "Error: %s\n", sGetErrorDetail() ); } else { printf( "nRet = %d\n", nRet ); printf( "FD = %d\n", FD ); } printf( "exit interface \n" ); nRet = nExitInterface( FD ); printf( "after exit, nRet = %d\n", nRet ); if( nRet != API_OK ) printf( "Error: %s\n", sGetErrorDetail() ); }*/ /* *描述:(1) 初始化系统接口的配置参数 (2) 连接MTBS服务器 (3) 创建连接接收线程 (4) 创建连接发送线程 (5 创建接收缓冲区 (6) 创建发送缓冲区 (7) 创建MO、回执缓冲区 *输入:sIniFile 配置文件名 *输出:无 *返回值:API_OK 成功 * 其它 失败 */ nRet = nHInitInterface( "cmppapi.ini" ); if( nRet != API_OK ) { printf( "Error: %s\n", sGetErrorDetail() ); return -1; } memset( &rSubmit, 0, sizeof( recSubmit ) ); //strcpy( rSubmit.sInMsgId, "12345678" ); //strcpy( rSubmit.sFeeTerminalId, "13900010001" ); strcpy( rSubmit.sFeeType, MacFeeType_Piece ); rSubmit.nFeeCode = 50; strcpy( rSubmit.sServiceId, "0017" ); rSubmit.ucTpPid = 0 ; rSubmit.ucTpUdhi = 0; strcpy( rSubmit.sSrcId, "0017" ); rSubmit.ucPkTotal = 1; rSubmit.ucPkNumber = 1; rSubmit.ucFeeTerminalType = 0; nRet = nHSubmit( &rSubmit, "13900010001", 0, MSG_FORMAT_GB, //unsigned char ucMsgFmt, 10, //const unsigned char ucMsgLength, "1234567890", //const char *sMsgContent, sMsgId, // unsigned char *sMsgId, &chResult, sLastTerminateId ); if( nRet != API_OK ) { //printf( "Submit Error: %s\n", sGetErrorDetail() ); printf( "Submit Error: %s\n", sGetErrorReason( nRet ) ); return -1; } else { printf( "Success nHSubmit\n" ); } /* * 描述:高层取缓冲中的普通MO,回执 * 输入:int nTimeOut 超时时间(秒) * 输出:int* pnReceiptOrNot * 类型:1 回执 0 deliver * unsigned int* punSequenceId * recCmppDeliver* prCmppDeliver * recCmppReceiptBody* prReceiptBody, * (在*pnReceiptOrNot为1时有效) * int nTimeOut 超时时间(秒) * 返回值:API_OK 成功 * API_NOCELL 没有数据包 * 其它 失败 */ nRet = nHGetDeliver( &nReceiptOrNot, &unSequenceId, &rCmppDeliver, &rReceiptBody, 10 ); if( nRet != API_OK && nRet != API_NOCELL ) { printf( "nRet = %d\n", nRet ); printf( "nHGetDeliver Error: %s\n", sGetErrorDetail() ); return -1; } else { printf( "Success nHGetDeliver\n" ); } /* *描述:(1)释放API资源 (2)关闭同MTBS的连接 注意:系统退出时必须调用nHExitInterface,释放线程资源 *输入:无 *输出:无 *返回值:API_OK 成功 * 其它 失败 */ nRet = nHExitInterface( ); if( nRet != API_OK ) { printf( "Error: %s\n", sGetErrorDetail() ); return -1; } else { printf( "Success nHExitInterface\n" ); } return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -