Java实现一个简单的RPC框架(三) 带参数的本地调用
来源:互联网 发布:2017淘宝答题答案 编辑:程序博客网 时间:2024/05/29 12:47
参考:
crylearner专栏 一个简单的RPC框架是如何炼成的 :http://blog.csdn.net/crylearner/article/details/46898537
上面我们已经实现了通过我们指定的协议调用本地的其它类的函数来实现自己的功能,接下来我们要实现带参数的RPC调用。
这里我以add(a,b)为例子,为了实现这个功能,我们的请求方多了两个参数a和b,那么我们的RPC协议就要进行相应的修改:前面我们的请求方包含id和commnad,现在我们再增加两个参数arg1和arg2
被调用方除了处理sayHello命令外,新增处理add命令的功能。
Java代码实现:
/** * 带参数的RPC调用 * 新增一个add(a,b)功能 * @author xchen * */public class Test3 {public static void main(String[] args) {mServer server = new mServer();mClient client = new mClient();client.remote=server;System.out.println(client.sayHello());System.out.println(client.add(1, 2));}}class mRequest{int id;String command;int arg1;int arg2;}class mResponse{int id;String result;}class mClient{mServer remote;mRequest req = new mRequest();mResponse rsp = new mResponse();void setReqId(int id){req.id=id;}void setReqCommand(String command){req.command=command;}mClient(){remote = null;}String getRsp(mRequest req){rsp = remote.procRequest(req);return rsp.result;}String sayHello(){req.id=1;req.command="sayHello";return getRsp(req);}String add(int a,int b){req.id=1;req.command="add";req.arg1=a;req.arg2=b;return getRsp(req);}}//class mServer{//Server解析收到的Request报文(报文由id和command组成)//将回复报文id设置为收到的报文一致//如果command为sayHello,那么范围的报文内容为Hello//如果为其他命令,我们暂时没有设定,所有输出无法解析提示消息unknown commandmResponse procRequest(mRequest req){//return "Hello World";mResponse rsp = new mResponse();rsp.id = req.id;if(req.command == "sayHello"){rsp.result = "Hello";}else if(req.command=="add"){rsp.result = Integer.toString(req.arg1+req.arg2);}else{rsp.result = "unknown command";}return rsp;}}//没有实现远程
0 0
- Java实现一个简单的RPC框架(三) 带参数的本地调用
- Java实现一个简单的RPC框架(一) 本地调用
- 一个简单RPC框架是如何炼成的(III)——实现带参数的RPC调用
- 【远程调用框架】如何实现一个简单的RPC框架(五)优化三:软负载中心设计与实现
- Java实现一个简单的RPC框架(七) 反射机制调用类函数
- Java实现一个简单的RPC框架(二) 协议
- Java实现一个简单的RPC框架(六) 注册机制
- 一个简单的rpc框架的实现
- 一个简单的rpc框架的实现
- 自己实现一个简单的RPC框架
- 如何实现一个简单的rpc框架
- 小司机带你撸一个简单的RPC框架
- 【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计
- Java实现简单的RPC框架
- java实现简单的RPC框架
- Java实现简单的RPC框架
- Java实现简单的RPC框架
- Java实现简单的RPC框架
- cocos2d - JS 判断当前场景是不是指定场景
- PAT(乙)-1007. 素数对猜想 (20)
- JavaScript XMLHttpRequest使用介绍
- Objective-C学习——中文URL编码和解码
- C/C++ typedef用法详解(真的很详细)
- Java实现一个简单的RPC框架(三) 带参数的本地调用
- iOS NSString 和NSData 转换
- java设计模式
- python常用文件操作方法整理
- CSS文字换行、裁剪
- ios 字符串分割
- 10门最佳编程语言各自的优势
- [FUNC]循环输出字符串中的字符
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage