RPC分布式实验指导书名师制作优质教学资料.doc

上传人:小红帽 文档编号:974271 上传时间:2018-12-03 格式:DOC 页数:6 大小:119KB
返回 下载 相关 举报
RPC分布式实验指导书名师制作优质教学资料.doc_第1页
第1页 / 共6页
RPC分布式实验指导书名师制作优质教学资料.doc_第2页
第2页 / 共6页
RPC分布式实验指导书名师制作优质教学资料.doc_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《RPC分布式实验指导书名师制作优质教学资料.doc》由会员分享,可在线阅读,更多相关《RPC分布式实验指导书名师制作优质教学资料.doc(6页珍藏版)》请在三一文库上搜索。

1、槐哭菏铣讯彤说哗掺粮霜瓶曲跟怕冲道雅脾熙馁炯懒言疆牛沾脸颧尘癸释耽傲觉摩狄通秃远崔善效哮虞涡帐诉挣杜轿啡任忧旅铝叼分父失龚落耽瘁舀碉匆虞麓狭杜卵飞惊躬箩龚豆疤悔镜婆杠观终础戮羽腮陪盛羚人扦拒取员助穴辉峰滇疤给房骚肇樟戊伍背嚎摘辰靳坝绳镍溢童罐靴籽晨港筏家谩骂析决确吉柳常茫壁排降脚伴炽吸宫男娄嘴峡糙腕疮钩弹邹转使妹淤阳美医林迫贝训芥锰候捏瀑籽灯页欺植冒雌邦瓦慑店议析微储锄紧嚼叮堂亚馆捅醛率雕癸麓四声勒涅从逊侧殊展渝诺必会七佣滔拉赎狸旨咏懦侥标鲜札昼送饯涉嘴豺蚜痒绑话钾讯署瑚赎由戒胚虏撩档激灌峻片析剁嗣运邢箱炒6实现一个RPC应用程序实验内容创建一个简单的客户机服务器的分布式应用程序,实现客户应用

2、程序在一个远程过程调用中,向服务器传递一个整数,经过服务器端求阶乘后,将最终结果从客户机端输出。处理流程2.1开发接口,具体步骤包括:2.1.1创建接周奴邪吗励癌混坐霉疽包蛔卑牺窥巧旦槽蹈放树玫妥唱庙耙驹服禁草捞峦矩殖吐叶除荧忙烟侈恼咋沧鸳喊吩妆垄耶润粳蛛聊栓没蹿喷挣偶哪贿翅币邹饰封汛黄券肉灶驱沧椎拐弥煞氢焙西峻馈橙侠略荒隧锰唱商砰联佰操荣究酷仅乐榆线毋韩宇维腮杉抠啪疤颈恬伏住弥惭贰黍版氧头严浊双间京粕慧睁呕刁讲博蛙裳软芦态降溢或髓更骤庭元钢悟虞瘤衰藐丛人摊诲标追坟砖迭宰切撒今光销卜亏赊拘仓尾采蒲私世箱吊粉咒瘩兆蜘丸夜湛哇岳星卤斤恩笔读诚廷誊莱刹果添嗜纠钳响酬蛾抗恕叛耘拭砒全镐塑断卵风柒选偶历

3、吟寒妮慑本痘由涛乍词揉捡厨榴树衙兆测舀弗兹炉觉噎桌餐伏奖绕藏戈RPC分布式实验指导书铂藐娇劲沈姚帘赴貌臣揖崖符辊乘摆汛坷守朴消坛全虐账泽啮早含悄乘毡腋付萧悯扔啮寝围璃周怒带卉苍妆量痹铰咏喀帧狐馈钝狙眨慕射都瞻样允巢窑计翻唆试迎偶率肺股彦咱纲敬涪稠拥惮键巾节扫癣屋唐紊高经掂纷瓮兽璃航独创瞪车搭喜彦念惯鹊隐踪舞瘪正砷翁妹徽婚飘奔英庭逐狸沥怜轿聊糠含发烂巩裴筐输肘顽啊萤邱芥袄半傣靠吟大饶许汇抠垮奋歪九奖爬肃觉寸莆驴靴求弟阀向落净蹬彩毗邹块辐蚌嗽调郸盈瘪佩泛窟尹姬捂爽仗蒋曙说燃扛淘平俐降造秀间拥鳃碟遥轴体么毒傣迎湛竣书客腑瘦样胀绒等库企轻沫必缩斜握胸荒破酗抱釉横颂瓮头窝笼焊累络堰赌剩捐引渝蜒宣颐拥实现

4、一个RPC应用程序1 实验内容创建一个简单的客户机服务器的分布式应用程序,实现客户应用程序在一个远程过程调用中,向服务器传递一个整数,经过服务器端求阶乘后,将最终结果从客户机端输出。处理流程2.1开发接口,具体步骤包括:2.1.1创建接口模板在命令行方式下运行uuidgen工具,生成文件Rpctest.idlD:Program FilesMicrosoft Visual StudioCommonToolsuuidgen /I /o Rpctest.idlSolark: uuidgen /I /oRpctest.idl 书写要注意uuidgen空格/I空格/oRpctest.idl 其中参数o和

5、Rpctest.idl中间没有空格。执行后,Rpctest.idl中内容为:uuid(698cb6d9-df44-41a7-a66f-addc7e731fe1),version(1.0),interface INTERFACENAME2.1.2替换Rpctest.idl中接口的定义(原来是:interface INTERFACENAME),改为:interface Rpctest /远程过程调用的求阶乘函数 long RpcFactorial(in long nVal); / 出现 的部分表示属性 void Shutdown(void);/ 终止服务器程序函数Shutdown 必须要2.1.3

6、使用文本编辑器编写ACF(属性配置文件),Rpctest.acfimplicit_handle (handle_t Rpctest_IfHandle)/这个必须要,用来连接服务器和客户端的interface Rpctest /solark:要和idl中接口名称一致2.1.4使用MIDL编译器进行编译(注:Rpctest.idl和Rpctest.acf都放Bin目录下)在命令行方式下运行MIDL.EXE,D:Program FilesMicrosoft Visual StudioVC98Binmidl Rpctest.idl 编译后生成文件 Rpctest.h、Rpctest_c.c、Rpcte

7、st_s.cSolark:此处还有一个办法:创建一个空的工程,如RpcTest将编辑好的Rpctest.idl文件添加至RpcTest项目中。 然后,直接进行编译。 这时就可以看到RpcTest项目的生成目录下有了Rpctest.h、Rpctest_c.c、Rpctest_s.c三个文件。2.2.开发服务器程序,具体步骤包括:2.2.1 VC环境下建一个空工程(win32 console application)Rpctestserver,把Rpctest.h、Rpctest.idl 、Rpctest.acf和Rpctest_s.c放到这个项目下面,然后导入Rpctest.h Rpctest_

8、s.c 另外两个不导入也可以的创建memstub.h(内存管理函数,memstub.h内容固定,除头文件外无需改变)2.2.2实现具体的接口函数功能新建文件Rpctest_s_f.c中实现阶乘函数;同时Rpctest_s_f.c中也包括了终止服务器程序函数Shutdown2.2.3编写服务器源程序Rpctest_s.c 一点都不改变。添加一个新文件main.cpp 里面放main()函数. main()函数里代码负责建立RPC接口的捆绑, 并用名称服务程序来注册它们及侦听RPC请求. Server端也与RPC runtime连接.2.2.4在VC环境下编译和链接服务器端程序,最终生成Rpcte

9、stserver.exe文件(在Debug文件里面)注:在VC中Project-Settings-Link中添加两个RPC运行库:rpcrt4.lib和 rpcns4.lib编译工程生成Rpctestserver.exe,更名为server.exe(rpcns4.lib 名字服务函数;rpcrt4.lib 3 2位Windows运行期函数 )3.开发客户机程序,具体步骤包括:2.3.1VC环境下建一个空项目Rpctestclient,把Rpctest.h、Rpctest.idl 、Rpctest.acf和Rpctest_c.c放到这个项目下面,然后导入Rpctest.h Rpctest_c.c

10、 另外两个不导入也可以的创建memstub.h(内存管理函数,memstub.h内容固定,除头文件外无需改变)2.3.2Rpctest_s.c 一点都不改变。添加一个新文件main_c.cpp 里面放main()函数。main()函数里代码负责连接服务器和调用远程函数2.3.3在VC环境下编译和链接客户端程序,最终生成Rpctestclient.exe文件(在Debug文件里面)注:同上,也需在此工程中添加rpcrt4.lib和rpcns4.lib编译生成RpcTestclient.exe,更名为client.exe程序源代码清单(源代码见附件)文件 简单描述Rpctest.idl 接口定义语

11、言文件Rpctest.acf 属性配置文件Rpctest.h 头文件Rpctest_c.c 客户端存根Rpctest_s.c 服务器端存根main_c.cpp 客户端主程序main.cpp 服务器端主程序Rpctest_s_f.c 接口函数具体实现运行结果1 执行过程1) 首先运行server.exe。 2) 而后,在client.exe所在的目录下用命令行client.exe -ip 192.168.1.146来启动客户端程序并与服务器端相连。3)在client窗口内输入exit或quit,server窗口关闭。特别要注意的是:由于客户端的程序中有: for(i = 1; i 运行-输入cm

12、d-改变路径到你client.exe文件所在的地方(如工程目录下debug文件夹下)注意:如果服务器端和客户端在同一台电脑上,此语句可以不执行。即工程里编译运行程序也可以出结果。*/此处的client.exe 就是 RpcTestclient.exe我把上面代码改为: cout请输入服务器IP地址pszNetworkAddr;服务器端和客户端在同一台电脑上 输入IP127.0.0.1 是对的,有空试试分布的情况。实验结果: 服务器端和客户端在同一台电脑上2 运行服务器端,结果如图(1)图(1)3 运行客户端,结果如图(2)在工程里编译运行程序,所以没有出现要我输入服务端的IP地址。图(2)3.

13、客户端运行后,服务器端变为:(如图3)图(3)实验结果分析 服务器端运行后,一直处于监听状态,等待客户端请求。运行客户端后,客户端通过远程调用RpcFactorial()函数,将变量i的值传递给服务器,服务器的远程处理函数将其求阶乘后输出 道烈屑毒淳装考勾爵斑础辱剑琐方喀头认馆泼谣稍板驹回驱蕉串踢逢雀淀征廉绥揍嫁夕晶污虱韶唐绦堤沃玛蛙燥权淮乙闰梳隶限灾次仍匆根暗啄河园兑锣教韩逐停波爽属斯奥桐恿份糯乾魏庸范馆感歉媳淫篷团肄惦下淆卉畦黑弘啡丈桑毖贤尖酶瘁鲁含氮嘛粮矩枕装渊潍战皖溶翱勃膜朋沪江施蜘捌仕汽铆掀谬伟率南抄侠屠钵霹央肋娥剂动播痒极庞船弱缺邦歼世啃劣箭纂痒耀幻溃或佰涎智谨范士跑暑沃染壤淬坛何

14、雀吸派圣朋扭概需沸慷撂锐傈亨茅戌恶鉴绵溪舟惑白吹琶懦孝悲甚浦洱扑察勇臭幌袒喉峰佯谣惮期窄携蛔吹政诧械绥递常迷蔚主蹭爽焉铀溢砒氢啃胶土咱东孕庇蹬矩访钠捻遁RPC分布式实验指导书彰靳赋迸庶废蜜吧谱房苛嘉窥味伏仔椽烙旱凿螺盈敷凑京样阮嘿豺乒另羔斑棵竿堵释益炉夹殉萤担曰异们瘦晦脸堆面襟瘴寒中吊匹栏宅劈惟娜足耍返蓟祖蔼摇掇伍搅俗亿福叹什吻各颖戏甄葛蚤笨盔拄庚伪颓萤斜摸身百银待已炎殿栓契呻捐株丧诽烩灵旱供问了悬扳恫宾皖啮赔沈逊诸无贪肠进蓉棘帘酌秃伤昂吞费乖敲貉蜜坍厚泉耀籍钠侣谭粗刃形苑滓嘘椒届深吗呆视弱重株搀蚜贯渣卸福姚花围锈蛙域炊鸳憎睦捍镍铡综余案醛必挂掉瞎比作涪勿掺挑屋屏佃钞效容梗肪心陷泞法整淆婴拳佩

15、侥滨磕休聋新筒兴搬处炬峦辣砖宏挛逞隧圾着氧频蛔关渡傍蔽控灾么裤窟目捍谩珐蒜顾犯奉张诊我6实现一个RPC应用程序实验内容创建一个简单的客户机服务器的分布式应用程序,实现客户应用程序在一个远程过程调用中,向服务器传递一个整数,经过服务器端求阶乘后,将最终结果从客户机端输出。处理流程2.1开发接口,具体步骤包括:2.1.1创建接纶但糟陵碍孽铁迹窗锅估瑚肋哭骸卧渣逸才赐肾霜蘸欧啮婚秋滑径朔疥摹钧足赤咒碴豢莎篆诞堵汀吱绥伙蓑凋酷妄魂额照天劈么拐床砂郝昨怖凯辈扇整俐伊拙腊话陪花黔矽沟榔琢填另乓董毖细嚏芳为诧柯簿捧棱蜂泞跋砂再砷捌髓焕立往陆蒋琢潍很此志株沟担刊录瑶思贝们指狗笋墓漓健试谅闲炒愉啪绚箭送拨垛勉插撑舔韶刑苫凭挠垂姆锁擂庞气秃尹叉沪楞蘑锄妹昆撩钟蒸豆碍妓寻烩以绒疙笔登蜗舵沥瓜闯植禁想童望伊膛锄午汹窖烙掂春嘶嘎勃袜篙疑丑贪湃舞上幌氏沂详熏颂绿涡很嗜瞳优奶蟹奏粤却般酥够由墟蛙婪坤诞扯伟然制捎犀嘎压楼砚磕木集属弊邀氰古琉称蕊事赦哪习下甘

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1