网站大量收购独家精品文档,联系QQ:2885784924

使用C++ Builder封装Tuxedo客户端调用.docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用CBuilder封装Tuxedo客户端调用

使用C++ Builder封装Tuxedo客户端调用本文主要介绍如何使用C++ Builder把Tuxedo客户端的调用封装成一个独立的类CTuxCall,最大程度的方便用户调用tuxedo,并给出相应的例子,以供参考.由于是第一次发表这样的文章,其中不足之处,还望大家予以批评指正。类CTuxCall的特点封装后的类CTuxCall有如下一些特点,能够最大程度的满足用户的需求,方便用户的调用. (1) 可以自定义连接方式,长连接,短连接和混合连接(由用户自定义连接次数,当实际的连接次数超过自定义的连接次数,则自动断开连接,然后重连); (2) 可以自动切换连接地址,目前提供了5个备用地址,只要其中有一个地址上的服务是正常的,则Tuxedo的连接就是正常的; (3) 能够方便的设置客户端的信息,如操作员名称,操作员IP地址,或者操作员当前操作状态; (4) 调用方式简单,灵活,可扩充性好. 类CTuxCall函数说明(1) 设置客户端信息,在这里你可以设置操作员或者终端,甚至是一些操作状态的信息: void SetClientInfo(char* username,char* ctlname); 使用该函数后,在服务器的管理平台,使用pclt命令,就会显示客户端的相关信息,如: LMID User Name Client Name Time Status Bgn/Cmmt/Abrt --------------- --------------- --------------- -------- ------- ------------- szx1app tuxedo WSH 21:54:08 IDLE 0/0/0 szx1app oper01 192.168.1.114 0:18:15 IDLE/W 0/0/0 (2) 设置连接方式: bool SetConnectType(int contype); (3) 设置监听地址: bool SetWSNAddr(char* addrlist); 参数格式如下: //ip1:port1;//ip2:port2;....;//ip5:port5 ,最多支持5个IP地址. (4) 服务调用: Invoke();在客户端编写代码,只要调用这个函数即可.关于这个函数有几个不同的函数原形,具体如下: bool Invoke(char * OpCode,...); 指定操作码,调用确省服务,参数个数不定,至于如何把传入的参数一定的格式写入到发送缓冲去,需要调用自定义的函数进行打包. bool Invoke(char* SrvName,char* OpCode,...); 大体内容同上,只是调用的是指定的服务,而不是确省的服务. bool Invoke(char* SrvName,long InLen,long OutLen); 在使用此函数之前,必须保证先调用SetSendBuf()函数填充发送缓冲区. bool Invoke(char * SrvName,char * InStr,long InLen, char * OutStr, long OutLen,int flag = 0); 调用指定服务,输入参数和返回结果都由用户自定. (5) 填充发送缓冲区:int SetSendBuf(char *szFormat,...); 该函数用法同c语言的printf()函数,只是发送缓冲区的长度有限制,最好不要超过1024*10个字节. 源码分析类CTuxCall的源码TuxCall头文件//--------------------------------------------------------------------------- #ifndef TuxCallH #define TuxCallH //--------------------------------------------------------------------------- #if defined(__BORLANDC__)!defined(SOCKET_CONNECT) //#pragma comment (lib,libtux.lib) //#pragma comment (lib,libbuft.lib) //#pragma comment (lib,libfml.lib) //#pragma comment (lib,libfml32.lib) //#pragma comment (lib,libengine.lib) #endif #define TRANSMITER TRANSMIT class CTuxCall { private: char * m_RecBuff; char * m_SendBuf

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档