文档介绍:中间件编程及体会屮间件编程作业:RPC编程,通过Windows系统客户端访问Linux系统上面的文件以及完成open、close>read>write这四个操作,编程的内容有:接口定义、客户端和服务端的代码、开发过程屮的心得。RPC(RemoteProcedureCallProtocol),远程过程调用协议,是一种通过网络从远程计算机程序上请求服务。RPC编程是体验中间件的设计的好途径,中间件为如今计算机科学的快速发展产生的各种不同的平台提供了交流的一个接口。RPC是在单台机器上构建并测试应用程序,然后将程序划分为两个或者多个程序片,加入通信协议以允许每片程序在单独的计算机上运行。从一个程序片调用另一个程序片的过程称为远程过程调用,即RPCo在编程过程屮使用Rpcgen这个编译工具。Rpcgen以和C语言相类似的语法来书写和编译源代码。本次编程的宿主机为WINDOWSXPSP3,安装VMWARE,:structopenrequeststringfname<255>;intflagintmode;};structreadrequestintfhandle;intoffset;intlength;};structreadresultopaquedatao;};structwriterequest{intfhandle;intoffset;opaquedatao;};typedefintfhandle;/*open返回参数*/typedefstructopenrequestopen_req;/*open请求参数*/typedefstructreadrequestread_req;/*read请求参数*/typedefstructreadresultread_res;/*read返冋参数*/typedefstructwriterequestwrite_req;/*write请求参数*/typedefintwrite_res;/*write返回参数*/programFILEOPERATE_PROG{versionFILEOPERATE_VERSION{fhandleROPEN(open_req)=l;read」esRREAD(read_req)=2;write_resRWRITE(write_req)=3;voidRCLOSE(fhandle)=4;}=1;}=0x37654321;主要代码:服务端:1>打开文件fhandle*ropen_l_svc(open_req*argp,structsvc_req*rqstp){staticfhandleresult;result=open(argp・>fnam巳argp・>flag,argp・>mode);return&result;}2、读文件read_res*rread_l_svc(read_req*argp,structsvc_req*rqstp){staticread_resresult;intret=O;ret=lseek(argp->fhandle,argp・>offset,SEEK_SET);if(ret<0){;return&result;char*buf=(char*)malloc(arg