亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rpc.prog.ms

?? 早期freebsd實現
?? MS
?? 第 1 頁 / 共 5 頁
字號:
You will be given a unique program number in return..IX RPC administration.IX administration "of RPC".LPThe RPC program numbers and protocol specifications of standard Sun RPC services can befound in the include files in .I "/usr/include/rpcsvc" .These services, however, constitute only a small subset of those which have been registered.  The complete list of registered programs, as of the time when this manual was printed, is:.LP\fBTable 3-2\fI RPC Registered Programs\fR.TS Hbox tab (&) ;lfBI lfBI lfBIlfL lfL lfI .RPC Number&Program&Description_.TH.sp.5100000&PMAPPROG&portmapper100001&RSTATPROG&remote stats            100002&RUSERSPROG&remote users            100003&NFSPROG&nfs                     100004&YPPROG&Yellow Pages            100005&MOUNTPROG&mount demon             100006&DBXPROG&remote dbx              100007&YPBINDPROG&yp binder               100008&WALLPROG&shutdown msg            100009&YPPASSWDPROG&yppasswd server         100010&ETHERSTATPROG&ether stats             100011&RQUOTAPROG&disk quotas             100012&SPRAYPROG&spray packets           100013&IBM3270PROG&3270 mapper             100014&IBMRJEPROG&RJE mapper              100015&SELNSVCPROG&selection service       100016&RDATABASEPROG&remote database access  100017&REXECPROG&remote execution        100018&ALICEPROG&Alice Office Automation 100019&SCHEDPROG&scheduling service      100020&LOCKPROG&local lock manager      100021&NETLOCKPROG&network lock manager    100022&X25PROG&x.25 inr protocol       100023&STATMON1PROG&status monitor 1        100024&STATMON2PROG&status monitor 2        100025&SELNLIBPROG&selection library       100026&BOOTPARAMPROG&boot parameters service 100027&MAZEPROG&mazewars game           100028&YPUPDATEPROG&yp update               100029&KEYSERVEPROG&key server              100030&SECURECMDPROG&secure login            100031&NETFWDIPROG&nfs net forwarder init	100032&NETFWDTPROG&nfs net forwarder trans	100033&SUNLINKMAP_PROG&sunlink MAP		100034&NETMONPROG&network monitor		100035&DBASEPROG&lightweight database	100036&PWDAUTHPROG&password authorization	100037&TFSPROG&translucent file svc	100038&NSEPROG&nse server		100039&NSE_ACTIVATE_PROG&nse activate daemon	.sp .2i150001&PCNFSDPROG&pc passwd authorization .sp .2i200000&PYRAMIDLOCKINGPROG&Pyramid-locking         200001&PYRAMIDSYS5&Pyramid-sys5            200002&CADDS_IMAGE&CV cadds_image		.sp .2i300001&ADT_RFLOCKPROG&ADT file locking	.TE.NH 2\&Passing Arbitrary Data Types.IX "arbitrary data types".LPIn the previous example, the RPC call passes a single.I "unsigned long"RPC can handle arbitrary data structures, regardless ofdifferent machines' byte orders or structure layout conventions,by always converting them to a network standard called.I "External Data Representation"(XDR) beforesending them over the wire.The process of converting from a particular machine representationto XDR format is called.I serializing ,and the reverse process is called.I deserializing .The type field parameters of.I callrpc() and.I registerrpc() can be a built-in procedure like.I xdr_u_long() in the previous example, or a user supplied one.XDR has these built-in type routines:.IX RPC "built-in routines".DS.ft CWxdr_int()      xdr_u_int()      xdr_enum()xdr_long()     xdr_u_long()     xdr_bool()xdr_short()    xdr_u_short()    xdr_wrapstring()xdr_char()     xdr_u_char().DENote that the routine.I xdr_string() exists, but cannot be used with .I callrpc() and.I registerrpc (),which only pass two parameters to their XDR routines..I xdr_wrapstring() has only two parameters, and is thus OK.  It calls .I xdr_string ()..LPAs an example of a user-defined type routine,if you wanted to send the structure.DS.ft CWstruct simple {	int a;	short b;} simple;.DEthen you would call.I callrpc() as.DS.ft CWcallrpc(hostname, PROGNUM, VERSNUM, PROCNUM,        xdr_simple, &simple ...);.DEwhere.I xdr_simple() is written as:.ie t .DS.el .DS L.ft CW#include <rpc/rpc.h>xdr_simple(xdrsp, simplep)	XDR *xdrsp;	struct simple *simplep;{	if (!xdr_int(xdrsp, &simplep->a))		return (0);	if (!xdr_short(xdrsp, &simplep->b))		return (0);	return (1);}.DE.LPAn XDR routine returns nonzero (true in the sense of C) if it completes successfully, and zero otherwise.A complete description of XDR is in the.I "XDR Protocol Specification" section of this manual, only few implementation examples are given here..LPIn addition to the built-in primitives,there are also the prefabricated building blocks:.DS.ft CWxdr_array()       xdr_bytes()     xdr_reference()xdr_vector()      xdr_union()     xdr_pointer()xdr_string()      xdr_opaque().DETo send a variable array of integers,you might package them up as a structure like this.DS.ft CWstruct varintarr {	int *data;	int arrlnth;} arr;.DEand make an RPC call such as.DS.ft CWcallrpc(hostname, PROGNUM, VERSNUM, PROCNUM,        xdr_varintarr, &arr...);.DEwith.I xdr_varintarr() defined as:.ie t .DS.el .DS L.ft CWxdr_varintarr(xdrsp, arrp)	XDR *xdrsp;	struct varintarr *arrp;{	return (xdr_array(xdrsp, &arrp->data, &arrp->arrlnth, 		MAXLEN, sizeof(int), xdr_int));}.DEThis routine takes as parameters the XDR handle,a pointer to the array, a pointer to the size of the array,the maximum allowable array size,the size of each array element,and an XDR routine for handling each array element..KS.LPIf the size of the array is known in advance, one can use.I xdr_vector (),which serializes fixed-length arrays..ie t .DS.el .DS L.ft CWint intarr[SIZE];xdr_intarr(xdrsp, intarr)	XDR *xdrsp;	int intarr[];{	int i;	return (xdr_vector(xdrsp, intarr, SIZE, sizeof(int),		xdr_int));}.DE.KE.LPXDR always converts quantities to 4-byte multiples when serializing.Thus, if either of the examples above involved charactersinstead of integers, each character would occupy 32 bits.That is the reason for the XDR routine.I xdr_bytes()which is like.I xdr_array()except that it packs characters;.I xdr_bytes() has four parameters, similar to the first four parameters of.I xdr_array ().For null-terminated strings, there is also the.I xdr_string()routine, which is the same as.I xdr_bytes() without the length parameter.On serializing it gets the string length from.I strlen (),and on deserializing it creates a null-terminated string..LPHere is a final example that calls the previously written.I xdr_simple() as well as the built-in functions.I xdr_string() and.I xdr_reference (),which chases pointers:.ie t .DS.el .DS L.ft CWstruct finalexample {	char *string;	struct simple *simplep;} finalexample;xdr_finalexample(xdrsp, finalp)	XDR *xdrsp;	struct finalexample *finalp;{	if (!xdr_string(xdrsp, &finalp->string, MAXSTRLEN))		return (0);	if (!xdr_reference(xdrsp, &finalp->simplep,	  sizeof(struct simple), xdr_simple);		return (0);	return (1);}.DENote that we could as easily call.I xdr_simple() here instead of.I xdr_reference ()..NH 1\&Lowest Layer of RPC.IX "lowest layer of RPC".IX "RPC" "lowest layer".LPIn the examples given so far,RPC takes care of many details automatically for you.In this section, we'll show you how you can change the defaultsby using lower layers of the RPC library.It is assumed that you are familiar with socketsand the system calls for dealing with them..LPThere are several occasions when you may need to use lower layers of RPC.  First, you may need to use TCP, since the higher layer uses UDP, which restricts RPC calls to 8K bytes of data.  Using TCP permits calls to send long streams of data.  For an example, see the.I TCPsection below.  Second, you may want to allocate and free memorywhile serializing or deserializing with XDR routines.  There is no call at the higher level to let you free memory explicitly.  For more explanation, see the.I "Memory Allocation with XDR"section below.  Third, you may need to perform authentication on either the client or server side, by supplying credentials or verifying them.See the explanation in the .I Authenticationsection below..NH 2\&More on the Server Side.IX RPC "server side".LPThe server for the.I nusers() program shown below does the same thing as the one using.I registerrpc() above, but is written using a lower layer of the RPC package:.ie t .DS.el .DS L.ft CW#include <stdio.h>#include <rpc/rpc.h>#include <utmp.h>#include <rpcsvc/rusers.h>main(){	SVCXPRT *transp;	int nuser();	transp = svcudp_create(RPC_ANYSOCK);	if (transp == NULL){		fprintf(stderr, "can't create an RPC server\en");		exit(1);	}	pmap_unset(RUSERSPROG, RUSERSVERS);	if (!svc_register(transp, RUSERSPROG, RUSERSVERS,			  nuser, IPPROTO_UDP)) {		fprintf(stderr, "can't register RUSER service\en");		exit(1);	}	svc_run();  /* \fINever returns\fP */	fprintf(stderr, "should never reach this point\en");}nuser(rqstp, transp)	struct svc_req *rqstp;	SVCXPRT *transp;{	unsigned long nusers;	switch (rqstp->rq_proc) {	case NULLPROC:		if (!svc_sendreply(transp, xdr_void, 0))			fprintf(stderr, "can't reply to RPC call\en");		return;	case RUSERSPROC_NUM:.ft I		/*		 * Code here to compute the number of users		 * and assign it to the variable \fInusers\fP		 */.ft CW		if (!svc_sendreply(transp, xdr_u_long, &nusers)) 			fprintf(stderr, "can't reply to RPC call\en");		return;	default:		svcerr_noproc(transp);		return;	}}.DE.LPFirst, the server gets a transport handle, which is usedfor receiving and replying to RPC messages..I registerrpc() uses.I svcudp_create()to get a UDP handle.If you require a more reliable protocol, call.I svctcp_create()instead.If the argument to.I svcudp_create() is.I RPC_ANYSOCKthe RPC library creates a socketon which to receive and reply to RPC calls.  Otherwise,.I svcudp_create() expects its argument to be a valid socket number.If you specify your own socket, it can be bound or unbound.If it is bound to a port by the user, the port numbers of.I svcudp_create() and.I clnttcp_create()(the low-level client routine) must match..LPIf the user specifies the.I RPC_ANYSOCK argument, the RPC library routines will open sockets.Otherwise they will expect the user to do so.  The routines.I svcudp_create() and .I clntudp_create()will cause the RPC library routines to.I bind() their socket if it is not bound already..LPA service may choose to register its port number with thelocal portmapper service.  This is done is done by specifyinga non-zero protocol number in.I svc_register ().Incidently, a client can discover the server's port number by consulting the portmapper on their server's machine.  This can be done automatically by specifying a zero port number in .I clntudp_create() or.I clnttcp_create ()..LPAfter creating an.I SVCXPRT ,the next step is to call.I pmap_unset()so that if the.I nusers() server crashed earlier,any previous trace of it is erased before restarting.More precisely,.I pmap_unset() erases the entry for.I RUSERSPROGfrom the port mapper's tables..LPFinally, we associate the program number for.I nusers() with the procedure.I nuser ().The final argument to.I svc_register() is normally the protocol being used,which, in this case, is.I IPPROTO_UDPNotice that unlike.I registerrpc (),there are no XDR routines involvedin the registration process.Also, registration is done on the program,rather than procedure, level..LPThe user routine.I nuser() must call and dispatch the appropriate XDR routinesbased on the procedure number.Note thattwo things are handled by.I nuser() that.I registerrpc() handles automatically.The first is that procedure.I NULLPROC(currently zero) returns with no results.This can be used as a simple testfor detecting if a remote program is running.Second, there is a check for invalid procedure numbers.If one is detected,.I svcerr_noproc()is called to handle the error..KS.LPThe user service routine serializes the results and returnsthem to the RPC caller via.I svc_sendreply()Its first parameter is the.I SVCXPRThandle, the second is the XDR routine,and the third is a pointer to the data to be returned.Not illustrated above is how a serverhandles an RPC program that receives data.As an example, we can add a procedure.I RUSERSPROC_BOOLwhich has an argument.I nusers (),and returns.I TRUE or.I FALSE depending on whether there are nusers logged on.It would look like this:.ie t .DS.el .DS L.ft CWcase RUSERSPROC_BOOL: {	int bool;	unsigned nuserquery;	if (!svc_getargs(transp, xdr_u_int, &nuserquery) {		svcerr_decode(transp);		return;	}.ft I	/*	 * Code to set \fInusers\fP = number of users	 */.ft CW	if (nuserquery == nusers)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区三区在线播放| 日韩午夜激情电影| 麻豆视频观看网址久久| 一区视频在线播放| 久久蜜桃一区二区| 欧美人成免费网站| 色综合久久中文字幕| 激情av综合网| 秋霞影院一区二区| 亚洲一区在线视频| 中文字幕一区二| 国产网站一区二区三区| 日韩一区二区免费视频| 欧美日韩午夜影院| 91污在线观看| 91影视在线播放| 不卡欧美aaaaa| 国产suv精品一区二区883| 播五月开心婷婷综合| 日本不卡一区二区三区高清视频| 亚洲日本丝袜连裤袜办公室| 久久精品亚洲乱码伦伦中文| 欧美mv和日韩mv国产网站| 6080yy午夜一二三区久久| 欧美性生活久久| 色婷婷久久久综合中文字幕| 国产精品羞羞答答xxdd| 国产自产v一区二区三区c| 奇米色777欧美一区二区| 五月开心婷婷久久| 爽爽淫人综合网网站| 亚洲国产综合色| 亚洲国产美女搞黄色| 亚洲一区二区精品3399| 亚洲制服欧美中文字幕中文字幕| 亚洲视频香蕉人妖| 成人免费视频在线观看| 亚洲视频每日更新| 亚洲免费观看视频| 亚洲精品久久久蜜桃| 亚洲福利视频导航| 偷拍与自拍一区| 日本sm残虐另类| 麻豆成人久久精品二区三区红| 日本亚洲天堂网| 美女视频黄 久久| 国产一区二区日韩精品| 国产91丝袜在线播放0| 成人黄色小视频在线观看| 99精品视频中文字幕| 91在线观看地址| 欧美日韩一级片在线观看| 欧美精品18+| 日韩精品一区二区三区swag| 久久久久9999亚洲精品| 中文字幕va一区二区三区| 国产精品对白交换视频 | 日韩免费看的电影| 欧美xxxx老人做受| 国产日韩欧美一区二区三区综合| 中文字幕制服丝袜一区二区三区| 亚洲精品国产一区二区精华液| 亚洲国产美国国产综合一区二区| 免费久久99精品国产| 国产精品综合一区二区三区| 成人动漫在线一区| 欧美性生活久久| 2019国产精品| 亚洲欧美激情一区二区| 日本欧美一区二区在线观看| 国产一区二区三区在线观看免费| 99久久精品国产精品久久| 欧美日韩黄色一区二区| 久久亚洲捆绑美女| 亚洲日本护士毛茸茸| 日韩av中文字幕一区二区三区| 国产乱淫av一区二区三区| 91麻豆国产福利在线观看| 日韩区在线观看| 亚洲欧美影音先锋| 蜜臀久久久99精品久久久久久| 成人免费高清在线观看| 欧美精品一二三| 国产精品的网站| 91在线视频观看| 日韩欧美一区二区不卡| 综合久久国产九一剧情麻豆| 日韩国产欧美三级| av亚洲精华国产精华精| 精品少妇一区二区三区在线播放 | 日韩经典中文字幕一区| 福利一区在线观看| 欧美日韩国产综合视频在线观看| 国产日韩av一区| 青青青伊人色综合久久| 一本到高清视频免费精品| 久久久www成人免费无遮挡大片| 亚洲国产成人91porn| 国产精品一区在线观看你懂的| 欧美片网站yy| 亚洲精品日韩一| 成人av小说网| 国产亚洲欧洲997久久综合| 婷婷开心激情综合| 色综合久久综合网欧美综合网| 久久久久久综合| 亚洲国产另类av| 色婷婷综合久久久久中文 | 99久久精品国产麻豆演员表| 精品久久人人做人人爱| 天天影视网天天综合色在线播放| 丁香激情综合国产| 久久久久久一二三区| 老司机精品视频线观看86 | 国产精品护士白丝一区av| 久久精品国产免费| 欧美一区二区三区白人| 亚洲第一搞黄网站| 色老头久久综合| 亚洲欧洲在线观看av| 成人精品鲁一区一区二区| 国产日韩精品视频一区| 国模冰冰炮一区二区| 91精品国产高清一区二区三区 | 国产精品成人一区二区艾草 | 亚洲一区在线观看视频| 色噜噜狠狠色综合欧洲selulu | 免费看日韩精品| 欧美一级日韩不卡播放免费| 亚洲自拍偷拍欧美| 91久久精品日日躁夜夜躁欧美| 亚洲免费伊人电影| 欧美综合视频在线观看| 一区二区三区欧美日| 色噜噜久久综合| 亚洲第一福利一区| 欧美精品久久久久久久久老牛影院| 亚洲最新视频在线观看| 欧美日韩久久一区| 日本aⅴ亚洲精品中文乱码| 欧美一级精品在线| 国产一区二区三区香蕉| 久久精品亚洲麻豆av一区二区| 高清国产一区二区| 亚洲欧美日韩国产中文在线| 精品国产污污免费网站入口| 欧美a级一区二区| 欧美xxxxx牲另类人与| 国产一区二区不卡在线| 亚洲国产精品t66y| 在线这里只有精品| 日本欧美肥老太交大片| 久久久久九九视频| a在线播放不卡| 亚洲午夜影视影院在线观看| 欧美精品少妇一区二区三区| 久久99精品网久久| 国产精品乱码久久久久久| 色综合一个色综合亚洲| 亚洲成a人v欧美综合天堂| 欧美一级精品在线| 成人精品视频一区| 亚洲成人综合视频| 精品福利在线导航| aaa亚洲精品一二三区| 亚洲国产精品一区二区久久恐怖片 | 亚洲精品一区在线观看| 国产成人精品午夜视频免费| 亚洲丝袜另类动漫二区| 欧美一区二区三区爱爱| 成人在线综合网站| 亚洲国产成人av好男人在线观看| 欧美成人精品1314www| 不卡免费追剧大全电视剧网站| 亚洲天堂2016| 日韩午夜三级在线| 色综合久久久久综合体| 另类调教123区| 国产精品电影一区二区三区| 91精品国产综合久久精品性色| 国产成人激情av| 五月综合激情日本mⅴ| 欧美激情一区二区在线| 91精品国产一区二区三区| 成人av先锋影音| 久久99这里只有精品| 一区二区三区四区乱视频| 久久久五月婷婷| 欧美精品黑人性xxxx| 99久久精品一区二区| 另类成人小视频在线| 一区二区三区在线免费视频 | 成人免费在线视频| 精品免费日韩av| 欧美视频日韩视频| 99精品久久免费看蜜臀剧情介绍| 精品一区二区三区久久| 视频一区二区三区入口| 亚洲欧美在线视频观看| 欧美成人午夜电影|