资源简介
rpc实例 完美测试通过,如果有疑问请留言。。。。。。。。。
代码片段和文件信息
package client;
import java.io.objectInputStream;
import java.io.objectOutputStream;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.net.InetSocketAddress;
import java.net.Socket;
public class RPCClient {
@SuppressWarnings(“unchecked“)
public static T getRemoteProxyObj(final Class> serviceInterface final InetSocketAddress addr) {
// 1.将本地的接口调用转换成JDK的动态代理,在动态代理中实现接口的远程调用
return (T) Proxy.newProxyInstance(serviceInterface.getClassLoader() new Class>[] { serviceInterface }
new InvocationHandler() {
public object invoke(object proxy Method method object[] args) throws Throwable {
Socket socket = null;
objectOutputStream output = null;
objectInputStream input = null;
try {
// 2.创建Socket客户端,根据指定地址连接远程服务提供者
socket = new Socket();
socket.connect(addr);
// 3.将远程服务调用所需的接口类、方法名、参数列表等编码后发送给服务提供者
output = new objectOutputStream(socket.getOutputStream());
output.writeUTF(serviceInterface.getName());
output.writeUTF(method.getName());
output.writeobject(method.getParameterTypes());
output.writeobject(args);
// 4.同步阻塞等待服务器返回应答,获取应答后返回
input = new objectInputStream(socket.getInputStream());
return input.readobject();
} finally {
if (socket != null)
socket.close();
if (output != null)
output.close();
if (input != null)
input.close();
}
}
});
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2018-01-12 09:51 RPC\.classpath
文件 379 2018-01-12 09:51 RPC\.project
文件 598 2018-01-12 09:51 RPC\.settings\org.eclipse.jdt.core.prefs
文件 2154 2018-01-12 10:08 RPC\bin\client\RPCClient$1.class
文件 1140 2018-01-12 10:08 RPC\bin\client\RPCClient.class
文件 915 2018-01-12 11:03 RPC\bin\client\RPCTest$1.class
文件 1107 2018-01-12 11:03 RPC\bin\client\RPCTest.class
文件 171 2018-01-12 10:03 RPC\bin\services\HelloService.class
文件 674 2018-01-12 10:03 RPC\bin\services\impl\HelloServiceImpl.class
文件 3144 2018-01-12 10:06 RPC\bin\services\impl\ServiceCenter$ServiceTask.class
文件 2463 2018-01-12 10:06 RPC\bin\services\impl\ServiceCenter.class
文件 296 2018-01-12 10:04 RPC\bin\services\Server.class
文件 2338 2018-01-12 10:08 RPC\src\client\RPCClient.java
文件 1105 2018-01-12 11:03 RPC\src\client\RPCTest.java
文件 87 2018-01-12 10:03 RPC\src\services\HelloService.java
文件 198 2018-01-12 10:03 RPC\src\services\impl\HelloServiceImpl.java
文件 3052 2018-01-12 10:06 RPC\src\services\impl\ServiceCenter.java
文件 268 2018-01-12 10:04 RPC\src\services\Server.java
目录 0 2018-01-12 11:04 RPC\bin\services\impl
目录 0 2018-01-12 11:04 RPC\src\services\impl
目录 0 2018-01-12 11:04 RPC\bin\client
目录 0 2018-01-12 11:04 RPC\bin\services
目录 0 2018-01-12 11:04 RPC\src\client
目录 0 2018-01-12 11:04 RPC\src\services
目录 0 2018-01-12 11:04 RPC\.settings
目录 0 2018-01-12 11:04 RPC\bin
目录 0 2018-01-12 11:04 RPC\src
目录 0 2018-01-12 11:04 RPC
----------- --------- ---------- ----- ----
20390 28
............此处省略1个文件信息
- 上一篇:信道编码简介
- 下一篇:安卓wifi客户端与下位机通信
评论
共有 条评论