日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Sun RPC 編程簡介( 二 )


了如下功能函數(shù) 。
函數(shù)名 功能描述
Rpc_reg( ) 在一特定類型的傳輸層上注冊某個過程,來作為提供服務(wù)的RPC程序
Rpc_call( ) 遠(yuǎn)程調(diào)用在指定主機(jī)上指定的過程
Rpc_Broadcast( ) 向指定類型的所有傳輸端口上廣播一個遠(yuǎn)程過程調(diào)用請求

2、 高層例程
在這一層,程序需要在發(fā)出調(diào)用請求前先創(chuàng)建一個客戶端句柄,或是在偵聽請
求前先建立一個服務(wù)器端句柄 。程序在該層可以自由的將自己的應(yīng)用綁在所有的
傳輸端口上,它提供了如下功能函數(shù) 。

函數(shù)名 功能描述
Clnt_create( ) 程序通過這個功能調(diào)用,告訴底層RPC服務(wù)器的位置及其傳輸類型
Clnt_create_timed( ) 定義每次嘗試連接的超時最大時間
Svc_create( ) 在指定類型的傳輸端口上建立服務(wù)器句柄,告訴底層RPC事件過程的相應(yīng)入口地址
Clnt_call() 向服務(wù)器端發(fā)出一個RPC調(diào)用請求

3、 中間層例程
中間層向程序提供更為詳細(xì)的RPC控制接口,而這一層的代碼變得更為復(fù)雜,
但運(yùn)行也更為有效,它提供了如下功能函數(shù) 。
函數(shù)名 功能描述
Clnt_tp_create( ) 在指定的傳輸端口上建立客戶端句柄
Clnt_tp_create_timed( ) 定義最大傳輸時延
Svc_tp_creaet( ) 在指定的傳輸端口上建立服務(wù)句柄
Clnt_call( ) 向服務(wù)器端發(fā)出RPC調(diào)用請求

4、 專家層例程
這層提供了更多的一系列與傳輸相關(guān)的功能調(diào)用,它提供了如下功能函數(shù) 。

函數(shù)名 功能描述
Clnt_tli_create( ) 在指定的傳輸端口上建立客戶端句柄
Svc_tli_create( ) 在指定的傳輸端口上建立服務(wù)句柄
Rpcb_set( ) 通過調(diào)用rpcbind將RPC服務(wù)和網(wǎng)絡(luò)地址做映射
Rpcb_unset( ) 刪除rpcb_set( ) 所建的映射關(guān)系
Rpcb_getaddr( ) 調(diào)用rpcbind來犯會指定RPC服務(wù)所對應(yīng)的傳輸?shù)刂?
Svc_reg( ) 將指定的程序和版本號與相應(yīng)的時間例程建起關(guān)聯(lián)
Svc_ureg( ) 刪除有svc_reg( ) 所建的關(guān)聯(lián)
Clnt_call( ) 客戶端向指定的服務(wù)器端發(fā)起RPC請求




5、 底層例程
該層提供了所有對傳輸選項(xiàng)進(jìn)行控制的調(diào)用接口,它提供了如下功能函數(shù) 。


函數(shù)名 功能描述
Clnt_dg_create( ) 采用無連接方式向遠(yuǎn)程過程在客戶端建立客戶句柄
Svc_dg_create( ) 采用無連接方式建立服務(wù)句柄
Clnt_vc_create( ) 采用面向連接的方式建立客戶句柄
Svc_vc_create( ) 采用面向連接的方式建立RPC服務(wù)句柄
Clnt_call( ) 客戶端向服務(wù)器端發(fā)送調(diào)用請求
四、 實(shí)例介紹
以下我將通過實(shí)例向讀者介紹通過簡單層RPC的實(shí)現(xiàn)方法 。通常在此過程中我們
將使用RPC協(xié)議編譯工具-Rpcgen 。Rpcgen 工具用來生成遠(yuǎn)程程序接口模塊,它將以RPC
語言書寫的源代碼進(jìn)行編譯,Rpc 語言在結(jié)構(gòu)和語法上同C語言相似 。由Rpcgen 編譯生
成的C源程序可以直接用C編譯器進(jìn)行編譯,因此整個編譯工作將分為兩個部分 。Rpcgen
的源程序以.x結(jié)尾,通過其編譯將生成如下文件:
a) 一個頭文件(.h)包括服務(wù)器和客戶端程序變量、常量、類型等說明 。
b) 一系列的XDR例程,它可以對頭文件中定義的數(shù)據(jù)類型進(jìn)行處理 。
c) 一個Server 端的標(biāo)準(zhǔn)程序框架 。
d) 一個ClIEnt 端的標(biāo)準(zhǔn)程序框架 。
當(dāng)然,這些輸出可以是選擇性的,Rpcgen 的編譯選項(xiàng)說明如下:
選項(xiàng) 功能
"-" a 生成所有的模板文件
"-" Sc 生成客戶端的模板文件
"-" Ss 生成服務(wù)器端的模板文件
"-" Sm 生成Makefile 文件
(詳見Solaris Rpcgen Manaul)

Rpcgen 源程序 time.x:
/* time.x: Remote time printing protocol */
program TIMEPROG {
version PRINTIMEVERS {
string PRINTIME(string) = 1;
} = 1;
} = 0x20000001;
time_proc.c源程序:
/* time_proc.c: implementation of the remote procedure "printime" */

推薦閱讀