整理tuxedo客户端服务器程序范例Word文档下载推荐.docx
- 文档编号:14343639
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:7
- 大小:87.21KB
整理tuxedo客户端服务器程序范例Word文档下载推荐.docx
《整理tuxedo客户端服务器程序范例Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《整理tuxedo客户端服务器程序范例Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
Tpfree没有返还值,也就是说不用判断它是否成功的释放了缓冲区
inttpcall(char*svc,char*idata,longilen,char**odata,long*olen,longflags)
Svc是要调用的服务名
Idata是请求缓冲区指针,ilen是请求缓冲区长度
Odata是指向响应缓冲区指针的指针,使用双重指针的目的是便于动态调整响应缓冲区的大小
Client:
/*(c)2003BEASystems,Inc.AllRightsReserved.*/
/*Copyright(c)1997BEASystems,Inc.
Allrightsreserved
THISISUNPUBLISHEDPROPRIETARY
SOURCECODEOFBEASystems,Inc.
Thecopyrightnoticeabovedoesnot
evidenceanyactualorintended
publicationofsuchsourcecode.
*/
/*#ident"
@(#)samples/atmi/simpapp/simpcl.c$Revision:
1.5$"
*/
#include<
stdio.h>
#include"
atmi.h"
/*TUXEDOHeaderFile*/
#ifdefined(__STDC__)||defined(__cplusplus)
main(intargc,char*argv[])
#else
main(argc,argv)
intargc;
char*argv[];
#endif
{
char*sendbuf,*rcvbuf;
longsendlen,rcvlen;
intret;
if(argc!
=2){
(void)fprintf(stderr,"
Usage:
simpclstring\n"
);
exit
(1);
}
/*AttachtoSystem/TasaClientProcess*/
//向服务器传递客户认证信息
if(tpinit((TPINIT*)NULL)==-1){
Tpinitfailed\n"
sendlen=strlen(argv[1]);
/*AllocateSTRINGbuffersfortherequestandthereply*/
//分配缓冲区
if((sendbuf=(char*)tpalloc("
STRING"
NULL,sendlen+1))==NULL){
(void)fprintf(stderr,"
Errorallocatingsendbuffer\n"
tpterm();
if((rcvbuf=(char*)tpalloc("
Errorallocatingreceivebuffer\n"
tpfree(sendbuf);
//释放指向缓冲区的指针
(void)strcpy(sendbuf,argv[1]);
/*RequesttheserviceTOUPPER,waitingforareply*/
//调用服务
ret=tpcall("
TOUPPER"
(char*)sendbuf,0,(char**)&
rcvbuf,&
rcvlen,(long)0);
if(ret==-1){
Can'
tsendrequesttoserviceTOUPPER\n"
Tperrno=%d\n"
tperrno);
tpfree(rcvbuf);
(void)fprintf(stdout,"
Returnedstringis:
%s\n"
rcvbuf);
/*FreeBuffers&
DetachfromSystem/T*/
tpfree(sendbuf);
tpfree(rcvbuf);
tpterm();
return(0);
}
服务端常用函数简介
inttpsvrinit(intargc,char**argv)
TUXEDO服务在启动过程中要经历一个初始化阶段,这个时候服务回调tpsvrinit()方法进行全局初始化,它类似于C++的构造函数,给程序员提供了一个打开全局资源(数据库,消息队列,文件系统,socket)和初始化全局变量的好机会
inttpsvrdone(void)
对应tpsvrinit,在关闭服务时被自动调用,类似C++的析构函数,释放初始化打开的资源
voidtpreturn(intrval,longrcode,char*data,longlen,longflags)
Data是要返回的类型缓冲区指针,len是缓冲区的长度
Flags是标志位,目前尚未启用,必须置为0
Rcode是用户自定义的整数,可以随tpreturn()一起返回,客户机通过全局变量tpurcode来得到这个值
Rval是服务处理状态位,不用关注
intuserlog(char*format[arg]…)
此函数和printf的用法一致,服务端可以用此函数记录日志,存放在ULOG.mmddyy
文件中,不建议这样使用,TUXEDO每天会自动生成系统日志放在ULOG.mmddyy
Server:
@(#)samples/atmi/simpapp/simpserv.c$Revision:
ctype.h>
atmi.h>
/*TUXEDOHeaderFile*/
userlog.h>
/*tpsvrinitisexecutedwhenaserverisbooted,beforeitbegins
processingrequests.Itisnotnecessarytohavethisfunction.
Alsoavailableistpsvrdone(notusedinthisexample),whichis
calledatservershutdowntime.
tpsvrinit(intargc,char*argv[])
tpsvrinit(argc,argv)
char**argv;
/*Somecompilerswarnifargcandargvaren'
tused.*/
argc=argc;
argv=argv;
/*userlogwritestothecentralTUXEDOmessagelog*/
userlog("
Welcometothesimpleserver"
/*Thisfunctionperformstheactualservicerequestedbytheclient.
Itsargumentisastructurecontainingamongotherthingsapointer
在可行性研究时应进行安全预评价的建设项目有:
tothedatabuffer,andthelengthofthedatabuffer.
3.不同等级的环境影响评价要求
#ifdef__cplusplus
extern"
C"
(3)机会成本法#endif
5.建设项目环境影响评价文件的重新报批和重新审核void
TOUPPER(TPSVCINFO*rqst)
(2)疾病成本法与人力资本法#else
(3)生产、储存烟花爆竹的建设项目;
TOUPPER(rqst)
TPSVCINFO*rqst;
C.环境影响报告书#endif
1)按类型分。
环境标准按类型分为环境质量标准、污染物排放标准(或控制标准)、环境基础标准、环境检测方法标准、环境标准样品标准。
inti;
for(i=0;
i<
rqst->
len-1;
i++)
rqst->
data[i]=toupper(rqst->
data[i]);
/*Returnthetransformedbuffertotherequestor.*/
表四:
项目排污情况及环境措施简述。
tpreturn(TPSUCCESS,0,rqst->
data,0L,0);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 tuxedo 客户端 服务器 程序 范例