下载此文档

中间件实验报告1.docx


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
该【中间件实验报告1 】是由【花双韵芝】上传分享,文档一共【11】页,该文档可以免费在线阅读,需要了解更多关于【中间件实验报告1 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。电子科技大学 计算机 学院标准实验报告(实验)课程名称:中间件技术(实验)项目名称:用 Windows下的RPC客户端调用Linux上的文件服务器实现文件的基本操作电子科技大学研究生院电子科技大学实 验 报 告学生姓名 学号 实验中所参与的工作完成所有工作一、实验目的:本实验的目的和任务是, 用Windows下的RPC客户端调用 Linux上的文件服务器实现文件的基本操作,让学生理解中间件的基本原理,并掌握进行 RPC程序设计和开发的基本方法。二、实验内容:在Linux下完成RPC的开发,然后将客户端代码移植到Windows下编译运行,实现Windows下的RPC客户端调用Linux上的文件服务器实现文件的基本操作openclosereadwrite);三、实验步骤:,学****RPC的总体架构和编程方法。在服务器端完成idl文件的编写,然后用rpcgen生成相关文件,修改生成的服务器端的代码,实现对文件的具体操作。通过makefile编译生成可执行文件。VC++,寻找相关的库文件如等,将Linux下rpcgen生成的客户端的代码,,和移植到windows下,进行编译测试。、总结,相关的测试报告四、总结及心得体会:在搭建Linux环境时由于使用ubuntu版本较高需要安装rpcbind来启动RPC服务。在把Linux下生成的客户端程序移植到windows编译的时候,发现还是有点麻烦的,需要下载,将\include目录下的文件拷到VC6自己的include目录下,比如我的虚拟机是C:\ProgramFiles\MicrosoftVisualStudio\VC98\Include,将\win32lib目录下的拷到VC6的lib目录下,我的是C:\ProgramFiles\MicrosoftVisualStudio\VC98\Lib,将文件中的“registerint32_t*buf;”这一行删除,然后windows端才能进行RPC通信,经过这次试验,学****到了 RPC程序设计的基本方法,受益匪浅。五、测试和截图测试环境:虚拟机Ubuntu/Linux作为服务器,ip地址是。虚拟机WindowsXp作为客户端,采用 Vc++编译器。客户端访问服务器文件/home/wame100/,分别测试open,close,read,:图1客户端测试截图图2服务器测试截图六、附件关键代码constMAXREADWORD =100;constMAXWRITEWORD=100;constMAXFILENUM=128;constMAXFILELEN=50;structopenfile{charfile_name[MAXFILELEN];intflag;};structreadpar{intfd;intsize;};structwriteword{intfd;charword_write[MAXWRITEWORD];};structreadword{charword_read[MAXREADWORD];intsize;};WORK_FISYSTERM_PROG{WORK_FIFYFTEM_VER{intOPEN_FILE(structopenfile)=1;intCLOSE_FILE(int)=2;structreadwordREAD_FILE(structreadpar)=3;intWRITE_FILE(structwriteword)=4;}=1;}=0x;改写的/*.*/#include""#include<>#include<>#include<>int*open_file_1_svc(structopenfile*argp,structsvc_req*rqstp){staticint result;/*insertservercodehere*/result=open(argp->file_name,O_RDWR|O_APPEND);printf("rpc 打开文件%sfd=%d\n",argp->file_name,result);return&result;}int*close_file_1_svc(int*argp,structsvc_req*rqstp){staticint result;/*insertservercodehere*/result=close(*argp);printf("rpc 关闭文件\n");return&result;}structreadword*read_file_1_svc(structreadpar*argp,structsvc_req*rqstp){staticstructreadword result;/*insertservercodehere*/=read(argp->fd, ,argp->size);printf("rpc 读取文件 %d%dbytes\n",argp->fd,;[]='\0';printf("文件内容 %s\n",;return&result;}int*write_file_1_svc(structwriteword*argp,structsvc_req*rqstp){staticint result;/*insertservercodehere*/result=write(argp->fd,argp->word_write,strlen(argp->word_write));printf("rpc 向文件中写入%dbytes写入内容: %s\n" , strlen(argp->word_write),argp->word_write);return&result;}Windows客户端代码:/*.*/#include""#ment(lib,"")voidnetwork_fisysterm_prog_1(char*host){CLIENT*clnt;int *result_1;structopenfile open_file_1_arg;int close_file_1_arg;structreadword *result_2;structreadpar read_file_1_arg;int *result_3;structwriteword write_file_1_arg;int *result_4;//#ifndef DEBUGclnt=clnt_create(WORK_FIFYFTEM_VER,"tcp");if(clnt==NULL){clnt_pcreateerror(host);exit(1);}//#endif /*DEBUG*/strncpy,"/home/wame100/",26);result_1=open_file_1(&open_file_1_arg,clnt);if(result_1==(int*)NULL){clnt_perror(clnt,"callfailed");}else{printf("文件打开成功 fd=%d\n",*result_1);}*result_1;50;result_2=read_file_1(&read_file_1_arg,clnt);if(result_2==(structreadword*)NULL){clnt_perror(clnt,"callfailed");}else{printf("文件大小%dbyte,读取文件内容:%s\n",result_2->size,result_2->word_read);}=*result_1;strncpy,"0107wangmeng",40);result_3=write_file_1(&write_file_1_arg,clnt);if(result_3==(int*)NULL){clnt_perror(clnt,"callfailed");}else{printf("文件写入成功 \n");}close_file_1_arg=*result_1;result_4=close_file_1(&close_file_1_arg,clnt);if(result_4==(int*)NULL){clnt_perror(clnt,"callfailed");}else{printf("文件关闭成功 \n");}//#ifndef DEBUGclnt_destroy(clnt);//#endif /*DEBUG*/}intmain(intargc,char*argv[]){char*host;

中间件实验报告1 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人花双韵芝
  • 文件大小86 KB
  • 时间2024-03-20
最近更新