




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ī)器上,不用通過網(wǎng)絡(luò)就可以訪問到服務(wù)器的客戶端 。(本地客戶端):是指要通過網(wǎng)絡(luò)才可以訪問到服務(wù)器的客戶端。下圖為應(yīng)用系統(tǒng)的客戶端訪問服務(wù)器上的服務(wù)的過程圖。說明:() 用于指產(chǎn)品的客戶端部分()系統(tǒng)自帶的一個(gè),它偵聽一個(gè)指定的端口,最初與該建立連接()系統(tǒng)自帶的一個(gè),由它處理與之間的通訊。(公告板)把系統(tǒng)的配置保存在一個(gè)共享內(nèi)存中,該共享內(nèi)存稱為公告板()的管理進(jìn)程,主要對(duì)公告板等進(jìn)行管理與建立連接的過程為: 調(diào)用()或()采用在中指定的地址與服務(wù)端的建立連接為該指定一個(gè),并把該的
2、偵聽端口返回給采用返回的端口與指定的建立連接,并與斷開連接,這之后與之間的通訊通過進(jìn)行處理,與無關(guān)。()或()調(diào)用返回。本地客戶端與遠(yuǎn)程客戶端的主要區(qū)別本地客戶端只能用語言或語言編寫,遠(yuǎn)程客戶端可以用幾乎所有的編程語言編寫。在遠(yuǎn)程客戶端所在的機(jī)器上要安裝的客戶端軟件,并且在設(shè)置相應(yīng)的環(huán)境變量;在本地客戶端上不用用編譯遠(yuǎn)程客戶端程序時(shí)要加 ,編譯本地客戶端則不用與遠(yuǎn)程客戶端有關(guān)的配置:在中要配置,即最多可以有多少個(gè)遠(yuǎn)程客戶端同時(shí)連接到該服務(wù)器上。在中要配置: 中可帶的參數(shù)為: 參數(shù)說明:: 的偵聽端口,遠(yuǎn)程客戶端通過該端口與服務(wù)器建立連接 : 最少啟動(dòng)多少個(gè)進(jìn)程: 最多啟動(dòng)多少個(gè)進(jìn)程,默認(rèn)值為:
3、每個(gè)進(jìn)程可以同時(shí)與多少個(gè)遠(yuǎn)程客戶端建立連接如果在遠(yuǎn)程客戶端與服務(wù)器之間傳送的數(shù)據(jù)包大?。▎挝粸樽止?jié))超過指定的參數(shù),就自動(dòng)進(jìn)行數(shù)據(jù)壓縮,: 指定一個(gè)遠(yuǎn)程客戶端的空閑時(shí)間,如果該遠(yuǎn)程客戶端在這么長(zhǎng)的時(shí)間內(nèi)沒有做任何調(diào)用,將斷開與該遠(yuǎn)程客戶端的連接。單位為分鐘,如果沒有指點(diǎn)該參數(shù),那么永遠(yuǎn)不會(huì)自動(dòng)斷開遠(yuǎn)程客戶端的連接: 指定遠(yuǎn)程客戶端與建立連接的時(shí)間,如果在指定的時(shí)間內(nèi)還沒有建立連接,那么連接將失敗。如果沒有采用安全認(rèn)證方式默認(rèn)為*秒,。如果采用安全認(rèn)證方式默認(rèn)為*秒,:指定可以使用的端口范圍:如果遠(yuǎn)程客戶端要跨越防火墻才能訪問該應(yīng)用系統(tǒng),在中要指定該參數(shù),指定可以使用的端口范圍,并讓防火墻允許訪
4、問這些端口。如果不指定,會(huì)根據(jù)系統(tǒng)端口的使用情況進(jìn)行分配,而分配的端口防火墻不允許通過,造成無法調(diào)用。如下面的設(shè)置指定可用的端口范圍為 。在遠(yuǎn)程客戶端的機(jī)器上要設(shè)置的環(huán)境變量 (必需):客戶端在該機(jī)器上的安裝目錄(必需):遠(yuǎn)程客戶端通過該地址與服務(wù)器建立連接,它的值為參數(shù)的值,如在上面的配置中為:(可選): 該客戶端的類型,如果與服務(wù)器的類型一樣,那么在它們之間進(jìn)行數(shù)據(jù)傳送時(shí)不用進(jìn)行編碼解碼工作。其他不常用的環(huán)境變量可參考的聯(lián)機(jī)文檔。客戶端的編程模式:在層結(jié)構(gòu)中,是屬與表示層,表示層主要處理與用戶交互,它的功能可概括為:、提供應(yīng)用的用戶交互接口,即主要通過圖形化的用戶界面,取的用戶的輸入數(shù)據(jù)、
5、與 應(yīng)用服務(wù)器建立連接、調(diào)用應(yīng)用服務(wù)器上的服務(wù)(),把客戶端的輸入?yún)?shù)放入輸出緩沖區(qū)。、應(yīng)用服務(wù)器調(diào)用相應(yīng)的處理客戶端的請(qǐng)求,把處理結(jié)果通過客戶端的輸入緩沖區(qū)返回給客戶端。 客戶端與服務(wù)端之間的通訊方式有以下幾種:、同步調(diào)用:、異步調(diào)用、會(huì)話方式:、可靠消息隊(duì)列、廣播方式、發(fā)布訂閱在下一章我們?cè)倬唧w介紹的介紹客戶端通過調(diào)用提供的編程()來編寫程序,下面介紹一些客戶端主要的與連接的建立與斷開有關(guān)的為了與建立連接要調(diào)用()檢查該所采用的安全方式,并根據(jù)得到的值做相應(yīng)的處理,然后調(diào)用()建立與的連接,在的結(jié)果返回之后,調(diào)用()斷開與的連接.()描述: 檢查該所采用的安全方式參數(shù):無返回值:不需要認(rèn)證
6、:需要口令認(rèn)證:需要口令認(rèn)證,并且還需要應(yīng)用級(jí)的認(rèn)證或授權(quán).:調(diào)用失敗, 錯(cuò)誤號(hào)保存在全局變量中。( *)描述: 與建立連接參數(shù)返回值: 失敗返回, 錯(cuò)誤號(hào)保存在全局變量中。結(jié)構(gòu)體在中的定義如下 ;* *;* *;* *;* *;* *;* *;* *;說明用于安全認(rèn)證中:用于定義以何種方式通知該客戶端一個(gè)的到來.它的值可以為:()描述: 斷開與建立連接參數(shù):無返回值: 失敗返回, 錯(cuò)誤號(hào)保存在全局變量中。與請(qǐng)求 有關(guān)的( *, *, , *, *, )描述:客戶端同步調(diào)用服務(wù)端的名為的,參數(shù): *:的名稱 *: 輸入緩沖區(qū)的地址,客戶端傳給服務(wù)端的參數(shù)放在該緩沖區(qū)內(nèi): 輸入緩沖區(qū)的長(zhǎng)度 *
7、輸出緩沖區(qū)的地址,服務(wù)端傳給客戶端的結(jié)果放在該緩沖區(qū)內(nèi) *:輸出緩沖區(qū)的長(zhǎng)度 : 調(diào)用標(biāo)志,由以下幾個(gè):如果調(diào)用的客戶端當(dāng)前在方式下,那么不參與當(dāng)前的。如果服務(wù)端返回的緩沖區(qū)類型與客戶端定義的緩沖區(qū)()類型不一致,默認(rèn)情況下,會(huì)轉(zhuǎn)換成與服務(wù)端返回的緩沖區(qū)類型一致的類型,如果設(shè)置了該,那么當(dāng)出現(xiàn)這種情況時(shí),不進(jìn)行緩沖區(qū)類型轉(zhuǎn)換,并且會(huì)保錯(cuò)。默認(rèn)情況下,如果客戶端有阻塞條件存在(如的中的緩沖區(qū)滿,磁盤忙等),那么客戶端會(huì)阻塞在那里,直到阻塞消除或超時(shí)出錯(cuò)。如果設(shè)置了,當(dāng)客戶端有阻塞條件存在時(shí)()會(huì)立刻返回并報(bào)錯(cuò). 注意只對(duì)發(fā)送請(qǐng)求時(shí)起作用,如果在接收服務(wù)端返回的結(jié)果時(shí)有阻塞條件存在,客戶端會(huì)在那里
8、等待,直到阻塞消除或超時(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)保存在全局變量中。( *, *, , )描述: 客戶端異步調(diào)用服務(wù)端的名為的,不等服務(wù)端返回結(jié)果,程序可繼續(xù)往下走,在某個(gè)地方調(diào)用()取的服務(wù)端的返回參數(shù): *, *, 參數(shù)的含義與()中的一樣可設(shè)置為:, , , ., , 的含義與與()中的一樣:調(diào)用()的客戶端不想接收端的應(yīng)答。如果設(shè)置了:服務(wù)端不會(huì)給該客戶端發(fā)送應(yīng)答。返回值:
9、失敗返回,成功返回一個(gè),可作為的參數(shù),用于取應(yīng)答( *, *, *, )描述:取出服務(wù)端對(duì)()的應(yīng)答。參數(shù):()返回的 *返回緩沖區(qū)的地址,服務(wù)端傳給客戶端的結(jié)果放在該緩沖區(qū)內(nèi) *:返回緩沖區(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ù):()返回的返回值: 失敗返回,錯(cuò)誤號(hào)保存在全局變量中。()描述:返回最近發(fā)送()()或接收()的一個(gè)消息的優(yōu)先級(jí)參數(shù):無返回值: 消息的優(yōu)先級(jí),值越高, 優(yōu)先級(jí)
10、越高 失敗返回, 錯(cuò)誤號(hào)保存在全局變量中。 ; * *; * * ; (; ; ) * * (, , ,);* *();* () *(*) , , (), ); (; ; ) (, , , ); (, )描述: 設(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),類似于中的返回值: 失敗返回,成功返回錯(cuò)誤號(hào)為的錯(cuò)誤描述.()描述: 返回當(dāng)前進(jìn)程或線程最近調(diào)用的出
11、錯(cuò)的更詳細(xì)的描述參數(shù):設(shè)為返回值: 如果沒有錯(cuò)誤返回,有錯(cuò)誤返回錯(cuò)誤描述號(hào) * (, )描述: 返回錯(cuò)誤描述號(hào)的詳細(xì)描述信息參數(shù): ()的返回值,: 設(shè)為返回值: 失敗返回,成功返回詳細(xì)描述信息 采用語言編寫的客戶端程序如果是采用語言編寫的客戶端程序,可直接采用的函數(shù),這些函數(shù)在中定義.采用語言編寫的客戶端的例子在此不列舉,可參考等例子.采用語言編寫客戶端的編譯是用命令進(jìn)行的,它的使用格式如下: 參數(shù)說明: 編譯用寫的客戶端 : 輸出詳細(xì)的編譯信息: 編譯成,如果不帶該參數(shù),那么將編譯成.: 編譯生成的可執(zhí)行文件名: 要編譯的文件名: 指定要編譯生成該可執(zhí)行文件名要連接的其他庫(kù)文件,如果有多個(gè)
12、庫(kù)文件要連接,它們之間用空格隔開.: 指定該要連接的 調(diào)用或編譯器來進(jìn)行編譯工作.所以客戶端所在的機(jī)器要有編譯器才能編譯客戶端的程序.如果是客戶端,可安裝,并在環(huán)境下編譯客戶端的程序. 如果在安裝時(shí)沒有把自動(dòng)設(shè)置環(huán)境變量的選項(xiàng)選上,中設(shè)置環(huán)境變量的文件在安裝目錄下的中,可手工執(zhí)行它或在設(shè)置環(huán)境變量的文件中用調(diào)用它,如::如果是客戶端,可安裝等或編譯器.并在環(huán)境變量中設(shè)置所用的編譯器路徑. 采用編寫客戶端程序采用編寫客戶端程序與采用語言編寫客戶端的方式一樣,但要對(duì)要進(jìn)行一些設(shè)置才能進(jìn)行編譯,說明如下:在下的中加上,如圖所示:在下的中選,然后加上的目錄,如圖所示:. 在下的中選,然后加上的目錄,如
13、圖所示:采用編寫客戶端程序. 函數(shù)的聲明對(duì),等客戶端,提供一個(gè)編程接口,該文件名為,首先要在這些語言中聲明所要用到的函數(shù)。因?yàn)橹袥]有指針,我們把它們聲明為型。如果是雙重指針,可聲明為. 下面聲明采用編寫段程序常用到的函數(shù)( ) ( ) ( , , ) ( , ) ( , ) (, , , , , ) ( ) ( ) ( ) ( ) ( , ) ( , , , ) ( , , , ) ( , , , , ) () () ( , , , , ) ( , , , , ) ( , , , , ) ( , ) ( , ) ( , , ) ( ) ( ) () ( , ) () ( , , , , ) (
14、, , , , ) . ()緩沖區(qū)的定義在中緩沖區(qū)中字段的在*文件中定義,在中可以把它們定義為常量.編程方式的改變?cè)趦蓪拥慕Y(jié)構(gòu)中,客戶端直接訪問數(shù)據(jù)庫(kù),當(dāng)采用中間件后,形成三層結(jié)構(gòu)。這時(shí),客戶端不直接訪問數(shù)據(jù)庫(kù),而是改為調(diào)用中間件服務(wù)端上的服務(wù),由服務(wù)端訪問數(shù)據(jù)庫(kù),并把結(jié)果返回給客戶端。所以這時(shí)候客戶端上不用安裝數(shù)據(jù)庫(kù)的客戶端,中的數(shù)據(jù)窗口的數(shù)據(jù)源也只能采用外部數(shù)據(jù)源。因?yàn)椴荒苤苯优c數(shù)據(jù)庫(kù)建立連接.對(duì)存儲(chǔ)過程的處理推薦的做法是把存儲(chǔ)過程轉(zhuǎn)換為 的,這樣做工作量比較大,但是完全的層結(jié)構(gòu),另一種方式是存儲(chǔ)過程不變,用一個(gè) 的去調(diào)用該存儲(chǔ)過程,把結(jié)果返回給客戶端.例子下面我們舉兩個(gè)例子來說明在中編寫客戶端程序的方法.為了方便在例子中調(diào)用,我們重新定義對(duì)緩沖區(qū)進(jìn)行操作的函數(shù)如下:()*作用:寫一個(gè)浮點(diǎn)型數(shù)據(jù)到緩沖區(qū)的指定位置中輸入?yún)?shù):: 緩沖區(qū): 號(hào): 位置: 要寫入的浮點(diǎn)型數(shù)據(jù)輸入?yún)?shù):無返回值: 成功,失敗*();() ()( ( () )出錯(cuò): ()()*作用:寫一個(gè)整型數(shù)據(jù)到緩沖區(qū)的指定位置中輸入?yún)?shù):: 緩沖區(qū): 號(hào): 位置: 要寫入的整型數(shù)據(jù)輸入?yún)?shù):無返回值: 成功,失敗*();() ()( ( () )出錯(cuò): ()()*作用:寫一個(gè)字符型數(shù)據(jù)到緩沖區(qū)的指定位置中輸入?yún)?shù):: 緩沖區(qū): 號(hào)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)考前沖刺模擬試卷B卷含答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備高級(jí)技能押題練習(xí)試卷A卷附答案
- 湖北疫情知識(shí)培訓(xùn)課件
- 汽車電子技術(shù)原理及應(yīng)用測(cè)試卷
- 大學(xué)生創(chuàng)業(yè)指導(dǎo)故事征文
- 《初中英語語法重點(diǎn)講解與練習(xí)》
- 四川省達(dá)州市達(dá)川區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末生物學(xué)試題(含答案)
- 經(jīng)典詩(shī)文朗讀訓(xùn)練與欣賞
- 私人教練服務(wù)合同
- 高效辦公軟件簡(jiǎn)明教程與使用指南
- 2025年湖南益陽市生態(tài)環(huán)境局招聘10人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年江蘇省職業(yè)院校技能大賽高職組(人力資源服務(wù))參考試題庫(kù)資料及答案
- 2025年社區(qū)工作人員招聘考試復(fù)習(xí)題100道及參考答案
- 2024陜西延長(zhǎng)石油物流集團(tuán)有限公司社會(huì)招聘筆試參考題庫(kù)附帶答案詳解
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)完整
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)1套
- 《錢三強(qiáng)-杰出課件》
- 山東2025年山東大學(xué)輔導(dǎo)員招聘筆試歷年參考題庫(kù)附帶答案詳解
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 護(hù)林員系統(tǒng)培訓(xùn)
- 第四章逐步聚合反應(yīng)
評(píng)論
0/150
提交評(píng)論