TUXEDO的客戶端編程_第1頁(yè)
TUXEDO的客戶端編程_第2頁(yè)
TUXEDO的客戶端編程_第3頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第七章:的客戶端編程的客戶端簡(jiǎn)介:有兩種客戶端:本地客戶端和遠(yuǎn)程客戶端。(本地客戶端):是指與服務(wù)器在同一臺(tái)機(jī)器上,不用通過(guò)網(wǎng)絡(luò)就可以訪問(wèn)到服務(wù)器的客戶端° (本地客戶端):是指要通過(guò)網(wǎng)絡(luò)才可以訪問(wèn)到服務(wù)器的客戶端。下圖為應(yīng)用系統(tǒng)的客戸端訪問(wèn)服務(wù)器上的服務(wù)的過(guò)程圖。BEA Tuxedo Application Site 1說(shuō)明:()用于指產(chǎn)品的客戶端部分()系統(tǒng)自帶的一個(gè),它偵聽(tīng)一個(gè)指沱的端口,最初與該 建立連接()系統(tǒng)自帶的一個(gè),由它處理與之間的通訊。(公告板)把系統(tǒng)的配置保存在一個(gè)共享內(nèi)存中,該共享內(nèi)存稱(chēng)為公告板()的管理進(jìn)程,主要對(duì)公告板等進(jìn)行管理與建立連接的過(guò)程為:1. 調(diào)用

2、()或()2. 采用在中指定的地址與服務(wù)端的建立連接3. 為該指宦一個(gè),并把該的偵聽(tīng)端口返回給4. 采用返回的端口與指定的建立連接,并與斷開(kāi)連接,這之后與之間的通訊通過(guò)進(jìn)行處理,與無(wú)關(guān)。5. ()或()調(diào)用返回。本地客戶端與遠(yuǎn)程客戶端的主要區(qū)別1. 本地客戶端只能用語(yǔ)言或語(yǔ)言編寫(xiě),遠(yuǎn)程客戶端可以用幾乎所有的編程語(yǔ)言編 寫(xiě)。2. 在遠(yuǎn)程客戶端所在的機(jī)器上要安裝的客戶端軟件,并且在設(shè)宜相應(yīng)的環(huán)境變量: 在本地客戶端上不用3. 用編譯遠(yuǎn)程客戶端程序時(shí)要加編譯本地客戸端則不用與遠(yuǎn)程客戶端有關(guān)的配置:1.在中要配置,即最多可以有多少個(gè)遠(yuǎn)程客戶端同時(shí)連接 到該服務(wù)器上。2 在中要配置:中可帶的參數(shù)為:V

3、/參數(shù)說(shuō)明::的偵聽(tīng)端口.遠(yuǎn)程客戶端通過(guò)該端口與服務(wù)器建立連接:最少啟動(dòng)多少個(gè)進(jìn)程:最多啟動(dòng)多少個(gè)進(jìn)程,默認(rèn)值為:每個(gè)進(jìn)程可以同時(shí)與多少個(gè)遠(yuǎn)程客戶端建立連接如果在遠(yuǎn)程客戶端與服務(wù)器之間傳送的數(shù)據(jù)包大小(單位為字節(jié))超過(guò)指定的參數(shù).就自動(dòng)進(jìn)行數(shù)據(jù)壓縮,:指左一個(gè)遠(yuǎn)程客戶端的空閑時(shí)間,如果該遠(yuǎn)程客戶端在這么長(zhǎng)的時(shí)間內(nèi)沒(méi)有做任何調(diào)用,將斷開(kāi)與該遠(yuǎn) 程客戶端的連接。單位為分鐘,如果沒(méi)有指點(diǎn)該參數(shù),那么永遠(yuǎn)不會(huì)自動(dòng)斷開(kāi)遠(yuǎn)程客戸端的連接:指立遠(yuǎn)程客戶端與建立連接的時(shí)間,如果在指宦的時(shí)間內(nèi)還沒(méi)有建立連接,那么連接將失敗。如果沒(méi)有 采用安全認(rèn)證方式默認(rèn)為*秒,。如果采用安全認(rèn)證方式默認(rèn)為*秒,:指定可以使用的

4、端口范囤:如果遠(yuǎn)程客戶端要跨越防火墻才能訪問(wèn)該應(yīng)用系統(tǒng).在中要指左該參數(shù),指定可以使用的端口范用,并讓防 火墻允許訪問(wèn)這些端口。如果不指左,會(huì)根據(jù)系統(tǒng)端口的使用情況進(jìn)行分配,而分配的端口防火墻不允許通 過(guò),造成無(wú)法調(diào)用。如下而的設(shè)置指定可用的端口范圍為-。在遠(yuǎn)程客戶端的機(jī)器上要設(shè)置的環(huán)境變量(必需):客戶端在該機(jī)器上的安裝目錄(必需):遠(yuǎn)程客戶端通過(guò)該地址與服務(wù)器建立連接,它的值為參數(shù)的值, 如在上面的配置中為:(可選):該客戶端的類(lèi)型,如果與服務(wù)器的類(lèi)型一樣,那么在它們之間進(jìn)行數(shù)據(jù) 傳送時(shí)不用進(jìn)行編碼解碼工作。其他不常用的環(huán)境變量可參考的聯(lián)機(jī)文檔。客戶端的編程模式:脛務(wù)從緩沖區(qū) 収出救扳Ji

5、ll在層結(jié)構(gòu)中,是屬與表示層,表示層主要處理與用戶交互,它的功能可概括為:、提供應(yīng)用的用戶交互接口,即主要通過(guò)圖形化的用戶界而,取的用戶的輸入數(shù)據(jù)、與應(yīng)用服務(wù)器建立連接、訓(xùn)用應(yīng)用服務(wù)器上的服務(wù)(),把客戶端的輸入?yún)?shù)放入輸岀緩沖區(qū)。、應(yīng)用服務(wù)器調(diào)用相應(yīng)的處理客戶端的請(qǐng)求,把處理結(jié)果通過(guò)客戶端的輸入緩沖區(qū)返回給客戶端??蛻舳伺c服務(wù)端之間的通訊方式有以下幾種:、同步調(diào)用:.異步調(diào)用、會(huì)話方式:、可靠消息隊(duì)列.廣播方式、發(fā)布訂閱在下一章我們?cè)倬唧w介紹的介紹客戶端通過(guò)調(diào)用提供的編程()來(lái)編寫(xiě)程序,下而介紹一些客戶端主要的與連接的建立與斷開(kāi)有關(guān)的為了與建立連接要調(diào)用()檢査該所采用的安全方式,并根據(jù)得到

6、的值做相應(yīng)的處理,然后調(diào)用()建立與的 連接,在的結(jié)果返回之后,調(diào)用0斷開(kāi)與的連接.0描述:檢查該所采用的安全方式參數(shù):無(wú)返回值::不需要認(rèn)證:需要口令認(rèn)證:需要口令認(rèn)證,并且還需要應(yīng)用級(jí)的認(rèn)證或授權(quán).:調(diào)用失敗,錯(cuò)誤號(hào)保存在全局變量中。(*)描述:與建立連接參數(shù)返回值:失敗返回,錯(cuò)誤號(hào)保存在全局變量中。結(jié)構(gòu)體在中的定義如下;* *; * *;* *; * *;* *; * *;* *;說(shuō)明用于安全認(rèn)丘中:用于左義以何種方式通知該客戶端一個(gè)的到來(lái)它的值可以為:0描述:斷開(kāi)與建立連接參數(shù):無(wú)返回值:失敗返回,錯(cuò)誤號(hào)保存在全局變量中。與請(qǐng)求有關(guān)的(*, *, , *, *,)描述:客戸端同步調(diào)用服

7、務(wù)端的洛為的,參數(shù):*:的名稱(chēng)*:輸入緩沖區(qū)的地址,客戸端傳給服務(wù)端的參數(shù)放在該緩沖區(qū)內(nèi) :輸入緩沖區(qū)的長(zhǎng)度*輸出緩沖區(qū)的地址,服務(wù)端傳給客戸端的結(jié)果放在該緩沖區(qū)內(nèi) *:輸出緩沖區(qū)的長(zhǎng)度:調(diào)用標(biāo)志,由以下幾個(gè):如果調(diào)用的客戶端當(dāng)前在方式下,那么不參與當(dāng)前的匚如果服務(wù)端返回的緩沖區(qū)類(lèi)型與客戸端泄義的緩沖區(qū)()類(lèi)型不一致,默認(rèn)情況下,會(huì)轉(zhuǎn)換成與服務(wù)端返回的 緩沖區(qū)類(lèi)型一致的類(lèi)型,如果設(shè)置了該,那么當(dāng)出現(xiàn)這種情況時(shí),不進(jìn)行緩沖區(qū)類(lèi)型轉(zhuǎn)換,并且會(huì)保錯(cuò)。默認(rèn)情況下,如果客戶端有阻塞條件存在(如的中的緩沖區(qū)滿,磁盤(pán)忙等),那么客戶端會(huì)阻塞在那里,直到 阻塞消除或超時(shí)岀錯(cuò)。如果設(shè)置了,當(dāng)客戶端有阻塞條件存在

8、時(shí)()會(huì)立刻返回并報(bào)錯(cuò)注意只對(duì)發(fā)送請(qǐng)求時(shí) 起作用,如果在接收服務(wù)端返回的結(jié)果時(shí)有阻塞條件存在,客戶端會(huì)在那里等待,直到阻塞消除或超時(shí)出錯(cuò)如果客戶端有阻塞條件存在,客戸端會(huì)一直阻塞在那里,即使到了超時(shí)時(shí)間也不返回,但如果該客戶端是在 模式下,當(dāng)?shù)搅耸聞?wù)的超時(shí)時(shí)間.還是會(huì)報(bào)超時(shí)錯(cuò)誤并返回。如果在進(jìn)行系統(tǒng)調(diào)用時(shí),被信號(hào)中斷,該系統(tǒng)調(diào)用會(huì)重新進(jìn)行。調(diào)用成功返回,失敗返回,錯(cuò)誤號(hào)保存在全局變雖:中。(* * )描述;穩(wěn)戶熱異步調(diào)用服務(wù)端的名為的,不等服務(wù)端返回結(jié)果,程序可繼續(xù)往 下走,在某個(gè)地方調(diào)用0取的服務(wù)端的返回參數(shù):*,*,參數(shù)的含義與()中的一樣可設(shè)置為,的含義與與0中的一樣:調(diào)用()的客戶端不

9、想接收端的應(yīng)答。如果設(shè)置了:服務(wù)端不會(huì)給該客戶端發(fā)送應(yīng)答。返回值:失敗返回,成功返回一個(gè),可作為的參數(shù),用于取應(yīng)答(*, *, )描述:取出服務(wù)端對(duì)()的應(yīng)答。參數(shù):()返回的*返回緩沖區(qū)的地址,服務(wù)端傳給客戶端的結(jié)果放在該緩沖區(qū)內(nèi)最新精品資料整理推薦.更新于二O二-年一月五口 2021年1月5日星期二18:37:18*:返回緩沖區(qū)的長(zhǎng)度:可以是:,(不管的值,從服務(wù) 器的應(yīng)答隊(duì)列中取第一個(gè)可用的消息), 返回值:失敗返回.錯(cuò)誤號(hào)保存在全局變量中。() 描述:如果當(dāng)前的程序不處于事務(wù)模式中,取消對(duì)()的應(yīng)答,如果處于事務(wù)模式 中,則不能取消對(duì)()的應(yīng)答,該調(diào)用會(huì)失敗.參數(shù):()返回的返回值:失

10、敗返回.錯(cuò)誤號(hào)保存在全局變量中。0描述:返回最近發(fā)送()()或接收(0)的一個(gè)消息的優(yōu)先級(jí) 參數(shù):無(wú)返回值:消息的優(yōu)先級(jí),值越高,優(yōu)先級(jí)越髙失敗返回,錯(cuò)誤號(hào)保存在全局變量中。* *f* * '(;<)0;* () *(*)(),);(;<)();(,)描述:設(shè)置下一個(gè)要發(fā)送的消息的優(yōu)先級(jí)參數(shù):為相對(duì)值,設(shè)置下一個(gè)要發(fā)送的消息的優(yōu)先級(jí)為現(xiàn)在的優(yōu)先級(jí)加上 :為絕對(duì)值,設(shè)置下一個(gè)要發(fā)送的消息的優(yōu)先級(jí)為返回值:失敗返回.錯(cuò)誤號(hào)保存在全局變量中。與請(qǐng)求錯(cuò)誤處理有關(guān)的*()描述:返回錯(cuò)誤號(hào)為的錯(cuò)誤描述參數(shù):在中泄義的全局變量,用于標(biāo)識(shí)錯(cuò)誤號(hào),類(lèi)似于中的 返回值:失敗返回,成功返回錯(cuò)誤號(hào)

11、為的錯(cuò)誤描述.()描述:返回當(dāng)前進(jìn)程或線程最近調(diào)用的出錯(cuò)的更詳細(xì)的描述 參數(shù):設(shè)為返回值:如果沒(méi)有錯(cuò)誤返回,有錯(cuò)誤返回錯(cuò)誤描述號(hào)描述:返回錯(cuò)誤描述號(hào)的詳細(xì)描述信息 參數(shù)::()的返回值,:設(shè)為返回值:失敗返回,成功返回詳細(xì)描述信息采用語(yǔ)言編寫(xiě)的客戶端程序如果是采用語(yǔ)言編寫(xiě)的客戶端程序,可直接采用的函數(shù),這些函數(shù)在中左義采用語(yǔ)言編寫(xiě)的客戶端的例子在 此不列舉,可參考等例子采用語(yǔ)言編寫(xiě)客戶端的編譯是用命令進(jìn)行的,它的使用格式如下: 參數(shù)說(shuō)明::編譯用寫(xiě)的客戶端:輸岀詳細(xì)的編譯信息:編譯成,如果不帶該參數(shù),那么將編譯成:編譯生成的可執(zhí)行文件名:要編譯的文件名:指左要編譯生成該可執(zhí)行文件需要連接的其他

12、庫(kù)文件,如果有多個(gè)庫(kù)文件要連接,它們之間用空格隔開(kāi).:指定該要連接的調(diào)用或編譯器來(lái)進(jìn)行編譯工作所以客戶端所在的機(jī)器要有編譯器才能編譯客戶端的程序.如果是客戶端,可安裝,并在環(huán)境下編譯客戸端的程序.如果在安裝時(shí)沒(méi)有把自動(dòng)設(shè)置環(huán)境變量的選項(xiàng)選上. 中設(shè)置環(huán)境變量的文件在安裝目錄下的中,可手工執(zhí)行它或在設(shè)置環(huán)境變量的文件中用調(diào)用它,如::如果是客戶端,可安裝等或編譯器并在環(huán)境變量中設(shè)置所用的編譯器路徑.采用編寫(xiě)客戶端程序采用編寫(xiě)客戸端程序與采用語(yǔ)言編寫(xiě)客戸端的方式一樣,但要對(duì)要進(jìn)行一些設(shè)垃才能進(jìn)行編譯,說(shuō)明如下:1.在下的中加上,如圖所示:2在下的中選,然后加上的目錄,如圖所示:在下的中選,然后加上

13、的目錄,如圖所示:Options?J2£|Editor | Tabs | Debug | Compatibility | Build Directories Source 卜Platform:Show di recto ries for:(Win32| Library filesDirectories:I!J X 4D:Program FilesMicrosoft Visual StudioVC98LIBFilRaVM<ir:n)Gnft/iGU%l EtiidirAVCqfUlulFCil IRP:TUXEDQ65LIBCancel采用編寫(xiě)客戶端程序.函數(shù)的聲明對(duì),等客戶端,

14、提供一個(gè)編程接口,該文件名為,首先要在這些語(yǔ)言中聲明所要用到的函數(shù)。因?yàn)橹袥](méi) 有指針,我們把它們聲明為型。如果是雙重指針,可聲明為下而聲明采用編寫(xiě)段程序常用到的函數(shù)()"()"(> ,)"(,)"(,)"/ N H()“() ”0緩沖區(qū)的定義在中緩沖區(qū)中字段的在*文件中泄義,在中可以把它們左義為常量編程方式的改變?cè)趦蓪拥慕Y(jié)構(gòu)中,客戸端直接訪問(wèn)數(shù)據(jù)庫(kù),當(dāng)采用中間件后,形成三層結(jié)構(gòu)。這時(shí),客戸端不直接訪問(wèn)數(shù)據(jù) 庫(kù),而是改為調(diào)用中間件服務(wù)端上的服務(wù),由服務(wù)端訪問(wèn)數(shù)據(jù)庫(kù),并把結(jié)果返回給客戶端。所以這時(shí)候客戶 端上不用安裝數(shù)據(jù)庫(kù)的客戶端,中的數(shù)據(jù)窗

15、口的數(shù)據(jù)源也只能采用外部數(shù)拯源。因?yàn)椴荒苤苯优c數(shù)據(jù)庫(kù)建立 連接.對(duì)存儲(chǔ)過(guò)程的處理推薦的做法是把存儲(chǔ)過(guò)程轉(zhuǎn)換為的,這樣做工作量比較大,但是完全的層結(jié)構(gòu),另一種方式是存儲(chǔ)過(guò)程不變, 用一個(gè)的去調(diào)用該存儲(chǔ)過(guò)程,把結(jié)果返回給客戶端.例子下面我們舉兩個(gè)例子來(lái)說(shuō)明在中編寫(xiě)客戶端程序的方法.為了方便在例子中調(diào)用,我們重新宦義對(duì)緩沖區(qū)進(jìn)行操作的函數(shù)如下:()糾乍用:寫(xiě)一個(gè)浮點(diǎn)型數(shù)據(jù)到緩沖區(qū)的指泄位置中輸入?yún)?shù)::緩沖區(qū):號(hào):位置:要寫(xiě)入的浮點(diǎn)型數(shù)據(jù)輸入?yún)?shù):無(wú)返回值:成功,失敗0;00(P 0 。岀錯(cuò):氣)()當(dāng)作用:寫(xiě)一個(gè)整型數(shù)據(jù)到緩沖區(qū)的指立位置中 輸入?yún)?shù)::緩沖區(qū):號(hào):位置:要寫(xiě)入的整型數(shù)據(jù)輸入?yún)?shù):無(wú)返回值:成功,失敗0;00(少C 0少)出錯(cuò):氣)()水作用:寫(xiě)一個(gè)字符型數(shù)據(jù)到緩沖區(qū)的指泄位置中 輸入?yún)?shù)::緩沖區(qū):號(hào):位置:要寫(xiě)入的字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論