client.c

=====================================================

#include <stdio.h>

#include "atmi.h" /*包含TUXEDO系统的头文件"atmi.h", 以便引用TUXEDO的函数和变量定义。*/
#define ALLOClEN 20000 /*定义输入和返回的长度*/
#define MAXLEN 20000 /*定义输入和返回的长度*/

//读取文件filename的内容到dest数组,最多可以读maxlen个字节
//成功返回文件的字节数,失败返回-1
int read_file(const char *filename, char *dest, int maxlen)
{
    FILE *file;
    int pos, temp, i;
 
    //打开文件
    file = fopen(filename, "r");
    if( NULL == file )
    {
        fprintf(stderr, "open %s error\n", filename);
        return -1;
    }
 
    pos = 0;
    //循环读取文件中的内容
    for(i=0; i<MAXLEN-1; i++)
    {
        temp = fgetc(file);
        if( EOF == temp )
            break;
        dest[pos++] = temp;
    }
    //在数组末尾加0
    dest[pos] = 0;
 
    return pos;
}

int main(int argc, char** argv)
{
    char *inbuf=NULL;
    char *outbuf=NULL;
    long len=0;
    long outlen=0;
    char inbuftmp[MAXLEN]="";
    char envinfo[100] = "";

sprintf(envinfo, "WSNADDR=//%s",argv[1]);
    tuxputenv(envinfo);

if( argc != 4 )
    {
        fprintf(stderr,  "用法: ./client IP:port 服务名 请求报文\n");
        fprintf(stderr,  "用法示例: ./client 192.168.224.128:2225 sv_query ./test.txt \n");
        return -1;
    }

len = read_file(argv[3], inbuftmp, MAXLEN);

/*客户端调用tpinit()连接应用*/
    if  (tpinit((TPINIT * )NULL) == -1)
    {
        exit(1);
    }
    /*用tpalloc()分配一个STRING类型数据缓冲*/
    if (NULL==(outbuf=tpalloc("STRING", NULL, ALLOClEN)))
    {
        tpterm();
        exit(-1);
    }
    /*用tpalloc()分配一个STRING类型数据缓冲*/
    if (NULL==(inbuf=tpalloc("STRING", NULL, ALLOClEN)))
    {
        tpterm();
        exit(2);
    }
    /*将"hello world"拷贝进缓冲*/
    strcpy(inbuf,  inbuftmp);
    printf("\t请求报文:[%s]\n",inbuf);

/*用tpcall()包含数据缓冲,向交易"TOUPPER"发一个同步请求*/
    if ( tpcall(argv[2], inbuf, 0, &outbuf, &outlen, 0)== -1)
    {
        fprintf(stderr, "service requst fail.\n");
        tpfree(inbuf);
        tpfree(outbuf);
        tpterm();
        exit(-1);
    }

/*打印出改变的数据缓冲*/
    printf("\t 应答报文:[%s]\n", outbuf);
    tpfree(inbuf);
    tpfree(outbuf);

/*调用tpterm()切断与应用的连接*/
    tpterm();
    exit(0);
}

makefile

======================

all:
    buildclient -w -f client.c -o client -v

test.txt

=============

<REQ_MSG><HEAD><FUNCID>01</FUNCID><OPUSER></OPUSER><OPROLE>1</OPROLE><OPCHANNEL></OPCHANNEL><OPSITE></OPSITE><SESSION></SESSION><RUNTIME></RUNTIME><RESERVE></RESERVE></HEAD><BODY><APPSHEETSERIALNO></APPSHEETSERIALNO><CERTIFICATETYPE>3</CERTIFICATETYPE><CERTIFICATENO>jg1234我#11111111111111111</CERTIFICATENO><INVESTORNAME>sheny机111</INVESTORNAME><TRANSACTIONDATE>20140909</TRANSACTIONDATE><TRANSACTIONTIME>14</TRANSACTIONTIME><INDIVIDUALORINSTITUTION>0</INDIVIDUALORINSTITUTION><DISTRIBUTORCODE>225</DISTRIBUTORCODE><BUSINESSCODE>001</BUSINESSCODE><CHANNEL>1</CHANNEL><TRANSACTIONACCOUNTID>002</TRANSACTIONACCOUNTID><BRANCHCODE>001</BRANCHCODE><HOLDERCODE>002</HOLDERCODE><MANAGERCODE></MANAGERCODE><CUSTODIANCODE>004</CUSTODIANCODE><CAPITALTYPE>2</CAPITALTYPE><CAPITALFLAG></CAPITALFLAG><INSTREPRTYPE>1</INSTREPRTYPE><INSTREPRFLAG>1</INSTREPRFLAG></BODY></REQ_MSG>

tuxedo客户端测试程序相关推荐

  1. Boost:基于Boost的posix聊天的客户端测试程序

    Boost:基于Boost的posix聊天的客户端测试程序 实现功能 C++实现代码 实现功能 基于Boost的posix聊天的客户端测试程序 C++实现代码 #include <cstdlib ...

  2. c语言开发tuxedo客户端,Tuxedo-应用开发.doc

    Tuxedo-应用开发 Tuxedo应用开发指南 第一章 开发BEA Tuxedo应用程序... §1.1 开发前的思考... §1.2 创建BEA Tuxedo的客户程序... 客户程序的任务... ...

  3. tuxedo连接mysql,tuxedo详细安装的步骤.doc

    Tuxedo使用Non-XA模式连接Oracle数据库 的网络拓扑图: 软件安装环境:3台主机都安装Cent OS 5.3操作系统,第1台主机作为Tuxedo的客户端,只安装Tuxedo客户端(IP: ...

  4. linux下的tuxedo开发实例

    安装配置 上传安装文件tux81.tar,然后解压 tar -xvf tux81.tar 在当前目录下有一个tuxedo8.1目录,接着需要配置环境变量. vi .bash_profile 添加如下内 ...

  5. 监控系统之weblogic,apache,tuxedo的监控项的整理

    I've been busy working on this the whole day,monitoring the middleware apache监控: Apache监控指标 监控项 监控指标 ...

  6. 【译】使用Java编写Oracle Tuxedo应用

    Oracle Tuxedo Java编程介绍 简介 Oracle Tuxedo服务可以使用纯java来编写.使用java实现的服务的功能和其他Tuxedo服务实现是一样的.你可以使用客户端或者Tuxe ...

  7. Windows下Tuxedo的安装与配置-无数据库

    Windows下Tuxedo的安装与配置-无数据库 草木瓜 2005-5-18 一.安装前的文件准备 下载Tuxedo For Windows版本和License文件,本机采用的是Tuxedo9 wi ...

  8. Qt实现mqtt客户端和mqtt服务器搭建

    下载qtmqtt源码 下载地址:https://github.com/qt/qtmqtt,选择跟自己使用Qt版本一致的分支 使用qmake编译qtmqtt源码 编译环境:Ubuntu1804+Qt5. ...

  9. tuxedo错误码6_tuxedo错误解析和常用配置说明

    CMDTUX_CAT:1685: ERROR: Application initialization failure 这个服务是一个数据库的服务,连接用的用户名.密码.数据库名字都正确,但还是启动不了 ...

最新文章

  1. MySQL协议.NET Core实现(一)
  2. matlab pareto 升级版
  3. 计算机网络 实验 使用端口完成地址转换,Wireshark抓包工具计算机网络实验解析...
  4. 让小程序在自有App中启动的技术来了:mPaaS小程序架构深度解析
  5. android实现页面的跳转
  6. 潭州课堂25班:Ph201805201 django 项目 第二十四课 文章主页 多级评论数据库设计 ,后台代码完成 (课堂笔记)...
  7. Oracle 条件语句/循环语句
  8. Java核心技术 卷(一) 学习记录
  9. 制作1G的U盘启动盘
  10. 嵌入式系统开发项目管理
  11. 在windows下制作grub2引导的多启动U盘(可启动wepe,安装centos7,debian10等)
  12. Google的GDrive美如水中之月
  13. 可在手机浏览器下载文件的方法
  14. windows nvm安装,以及更换阿里源和用nvm安装node.js
  15. 用python实现相声、评书自动下载(四)
  16. 【企业】零和博弈思维模式构建,互利共赢
  17. ImGui实现Button高亮
  18. Perma.cc停止学术链接腐烂
  19. 日复一日,年复一年,祝我們都好在新的一年.
  20. N3-PEG-MAL,Azdio-PEG-Maleimide,一种点击化学PEG试剂

热门文章

  1. 乳腺增生的早期症状?乳腺增生做什么检查最好
  2. 创建角色、ansible-galaxy(在线角色)的使用
  3. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串
  4. 激光祛斑真的有用吗,激光祛斑会不会反弹
  5. 记录一次cpu 过高分析过程
  6. jquery制作拉开帷幕特效
  7. Unity平滑函数Lerp简单介绍
  8. forward 和 redirect 的区别?
  9. c语言 case语句用法,switch case语句的用法
  10. 超级强大,只需三步就能用 Python 做出酷炫的可视化大屏