TUXEDO的客户端编程_第1页
TUXEDO的客户端编程_第2页
TUXEDO的客户端编程_第3页
TUXEDO的客户端编程_第4页
TUXEDO的客户端编程_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TUXEDO的客户端编程的客户端简介:有两种客户端:本地客户端和远程客户端。(本地客户端): 是指与服务器在同一台机器上,不用通过网络就能够访问到服务器的客户端°(本地客户端):是指要通过网络才能够访问到服务器的客戸端。以下图为应用系统的客戸端访问服务器上的服务的过程图。BEATuxedoApplicationSite1说明:()用于指产品的客户端部分()系统自带的一个,它侦听一个指左的端口,最初与该建立连接()系统自带的一个,由它处理与之间的通讯。(公告板〕把系统的配置储存在一个共享内存中,该共享内存称为公告板()的治理进程,要紧对公告板等进行治理与建立连接的过程为:调用()或()采纳在中指定的地址与服务端的建立连接为该指宦一个,并把该的侦听端口返回给采纳返回的端口与指定的建立连接,并与断开连接,这之后与之间的通讯通过进行处理,与无关。()或()调用返回。本地客户端与远程客户端的要紧区别本地客户端只能用语言或语言编写,远程客户端能够用几乎所有的编程语言编写。在远程客户端所在的机器上要安装的客户端软件,同时在设宜相应的环境变量:在本地客户端上不用用编译远程客户端程序时要加编译本地客戸端那么不用与远程客户端有关的配置:1.在中要配置,即最多能够有多少个远程客户端同时连接到该服务器上。2•在中要配置:中可带的参数为:V][] [][][][][][][][][][][][][][][][][{}]〃参数说明:: 的侦听端口,远程客户端通过该端口与服务器建立连接: 最少启动多少个进程: 最多启动多少个进程,默认值为:每个进程能够同时与多少个远程客户端建立连接假如在远程客户端与服务器之间传送的数拯包大小(单位为字节1超过指泄的参数.就自动进行数据压缩,:指左一个远程客户端的闲暇时刻,假如该远程客户端在这么长的时刻内没有做任何调用,将断开与该远程客户端的连接。单位为分钟,假如没有指点该参数,那么永久可不能自动断开远程客户端的连接:指立远程客户端与建立连接的时刻,假如在指上的时刻内还没有建立连接,那么连接将失败。假如没有采纳安全认证方式默认为*秒,©假如采纳安全认证方式默认为*秒,[][]:指定能够使用的端口范畴:假如远程客户端要跨过防火墙才能访问该应用系统,在中要指左该参数,指泄能够使用的端口范畴,并让防火墙承诺访问这些端口。假如不指左,会依照系统端口的使用情形进行分配,而分配的端口防火墙不承诺通过,造成无法调用。如下而的设宜指立可用的端口范畴为-。在远程客户端的机器上要设置的环境变量(必需):客户端在该机器上的安装名目(必需):远程客戸端通过该地址与服务器建立连接,它的值为参数的值,如在上面的配程中为:

(可选):该客户端的类型,假如与服务器的类型一样,那么在它们之间进行数据传送时不用进行编码解码工作。其他不常用的环境变量可参考的联机文档。客户端的编程模式:/加入收以/加入收以裁烟iJill在层结构中,是属与表示层,表示层要紧处理与用戸交互,它的功能可概括为:、提供应用的用户交互接口•即要紧通过图形化的用户界而,取的用户的输入数据.与应用服务器建立连接、调用应用服务器上的服务(),把客戸端的输入参数放入输岀缓冲区。、应用服务器调用相应的处理客戸端的要求,把处理结果通过客户端的输入缓冲区返回给客户端。客户端与服务端之间的通讯方式有以下几种:、同步调用:、异步调用、会话方式:、可靠消息队列.广播方式.公布订阅在下一章我们再具体介绍的介绍客户端通过凋用提供的编程()来编写程序,下而介绍一些客户端要紧的与连接的建立与断开有关的为了与建立连接要调用()检査该所采纳的安全方式,并依照得到的值做相应的处理,然后调用()建立与的连接,在的结果返回之后,调用()断开与的连接.0描述:检查该所采纳的安全方式参数:无返回值::不需要认证:需要口令认证:需要口令认证,同时还需要应用级的认证或授权.:调用失败,错误号储存在全局变量中。(*)描述:与建立连接参数返回值:失败返回,错误号储存在全局变量中。结构体在中的定义如下{[];**[]; 水*[];**[];**;**;****T说明用于安全认证中:用于左义以何种方式通知该客戸端一个的到来•它的值能够为:0描述:断开与建立连接参数:无返回值:失败返回,错误号储存在全局变量中。与要求有关的(*,也,**, *,)描述:客户端同步调用服务端的需为的,参数:*:的名称*:输入缓冲区的地址,客户端传给服务端的参数放在该缓冲区内: 输入缓冲区的长度**输出缓冲区的地址,服务端传给客户端的结果放在该缓冲区内*:输出缓冲区的长度: 调用标志,由以下几个:假如调用的客户端当前在方式下,那么不参与当前的*假如服务端返回的缓冲区类型与客户端上义的缓冲区()类型不一致,默认情形下,会转换成与服务端返回的缓冲区类型一致的类型,假如设置了该,那么当显现这种情形时,不进行缓冲区类型转换,同时会保错。默认情形下,假如客户端有堵塞条件存在(如的中的缓冲区满,磁盘忙等),那么客户端会堵塞在那儿,直到堵塞排除或超时出错。假如设置了,当客户端有堵塞条件存在时()会赶忙返回并报错•注意只对发送要求时起作用,假如在接收服务端返回的结果时有堵塞条件存在,客户端会在那儿等待,直到堵塞排除或超时出错假如客户端有堵塞条件存在,客户端会一直堵塞在那儿,即使到了超时时刻也不返回,但假如该客户端是在模式下,当到了事务的超时时刻,依旧会报超时错误并返回。假如在进行系统调用时,被信号中断,该系统调用会重新进行。调用成功返回,失败返回.错误号储存在全局变量中*(**)描述':看户輛异步调用服务端的需为的,不等服务端返回结果,程序可连续往下走,在某个地点调用0取的服务端的返回参数:*, *,参数的含义与()中的一样可设程为:,・,,的含义与与0中的一样:调用()的客户端不想接收端的应答。假如设置了:服务端可不能给该客户端发送应答。返回值:失败返回,成功返回一个,可作为的参数,用于取应答(*,**,)描述:取出服务端对0的应答。参数:()返回的**返回缓冲区的地址,服务端传给客户端的结果放在该缓冲区内*:返回缓冲区的长度:能够是:,,(不管的值,从服务器的应答队列中取第一个可用的消息),返回值:失败返回.错误号储存在全局变量中。()描述:假如当前的程序不处于事务模式中,取消对0的应答,假如处于事务模式中,那么不能取消对()的应答,该调用会失败.参数:()返回的返回值:失败返回.错误号储存在全局变量中。0描述:返回最近发送(00)或接收(0)的一个消息的优先级参数:无返回值:消息的优先级,值越高,优先级越髙失败返回,错误号储存在全局变量中。[]0;}*0*((*)…([]),);(;<;){([]…);}(>)描述:设置下一个要发送的消息的优先级参数:为相对值,设置下一个要发送的消息的优先级为现在的优先级加上:为绝对值,设置下一个要发送的消息的优先级为返回值:失败返回.错误号储存在全局变量中。与要求错误处理有关的*()描述:返回错误号为的错误描述参数::在中泄义的全局变量,用于标识错误号,类似于中的返回值:失败返回,成功返回错误号为的错误描述.()描述:返回当前进程或线程最近调用的出错的更详细的描述参数:设为返回值:假如没有错误返回,有错误返回错误描述号*(,)描述:返回错误描述号的详细描述信息参数::()的返回值,:设为返回值:失败返回,成功返回详细描述信息釆纳语言编写的客户端程序假如是釆纳语言编写的客户端程序,可直截了当采纳的函数,这些函数在中立义•采纳语言编写的客户端的例子在此不列举,可参考等例子•采纳语言编写客户端的编译是用命令进行的,它的使用格式如下:[][][{}][][][]参数说明::编译用写的客户端:输出详细的编译信息:编译成,假如不带该参数,那么将编译成・:编译生成的可执行文件名:要编译的文件名:指左要编译生成该可执行文件名要连接的其他库文件,假如有多个库文件要连接,它们之间用空格隔开.:指定该要连接的调用或编译器来进行编译工作•因此客户端所在的机器要有编译器才能编译客户端的程序.假如是客户端,可安装,并在环境下编译客户端的程序.假如在安装时没有把自动设置环境变量的选项选上,中设置环境变量的文件在安装名目下的\\中,可手工执行它或在设宜环境变量的文件中用调用它,如::\\\\:\\假如是客户端,可安装等或编译骼•并在环境变虽:中设置所用的编译器路径.采纳编写客户端程序采纳编写客戸端程序与采纳语言编写客户端的方式一样,但要对要进行一些设宜才能进行编译,说明如下:1.在下的中加上,如下图:2.在下的中选,然后加上的名目,如下图:OptionsEditor|Tabs|Debug|Compatibility|BuildDirectoriesSource',>Platform:|Win32Showdirectoriesfor:IncludefilesCancel・在下的中选,然后加上的名目,如下图:采纳编写客户端程序.函数的声明对,,,等客户端,提供一个编程接口,该文件名为,第一要在这些语言中声明所要用到的函数。因为中没有指针,我们把它们声明为型。假如是双重指针,可声明为•下而声明采纳编写段程序常用到的函数()"()"(>,)"(,)"(,)"(>,,,,)^/ \ NN()(((((0) HH) HH\ 刃刃()) HH) HH\ 刃刃(((((〃〃((((((((()(〃Z*〃〃〃Z*00・0缓冲区的定义在中缓冲区中字段的在*文件中泄义,在中能够把它们左义为常量•编程方式的改变在两层的结构中,客戸端直截了当访问数据库,当采纳中间件后,形成三层结构。这时,客户端不直截了当访问数据库.而是改为调用中间件服务端上的服务,由服务端访问数据库,并把结果返回给客户端。因此这时候客户端上不用安装数据库的客戸端,中的数据窗口的数拯源也只能采纳外部数据源。因为不能直截了当与数据库建立连接..对储备过程的处理举荐的做法是把储备过程转换为的,如此做工作量比较大,然而完全的层结构,另一种方式是储备过程不变,用一个的去调用该储备过程,把结果返回给客户端..例子下面我们举两个例子来说明在中编写客户端程序的方法.为了方便在例子中调用,我们重新上义对缓冲区进行操作的函数如下:()材乍用:写一个浮点型数据到缓冲区的指泄位置中输入参数::缓冲区:号: 位置: 要写入的浮点型数据输入参数:无返回值:成功,失败0;00(P0。出错:气))()*作用:写一个整型数据到缓冲区的指龙位宜中输入参数::缓冲区:号: 位置: 要写入的整型数据输入参数:无返回值:成功,失败0;0(气少00出错:气))()宕作用:写一个字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论