資源簡介
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客戶端與下位機通信
評論
共有 條評論