具體實現步驟:
定義requesthandler類,實現了runnable
介面,即乙個連線對應乙個執行緒
定義main方法,建立rpcserver物件和service物件,rpcserver.start()
開啟服務
rpc client的實現:
自定義的invocationhandler類:
定義main方法,建立rpcclient物件,呼叫rpcclient.proxy()
獲取service**物件,從而可以在像呼叫本地service一樣,通過service.methodname()
實現遠端過程呼叫
關鍵**展示:
公共部分
public
class
rpcrequest
implements
serializable
public
inte***ce
helloservice
server部分public
class
rpcserver
}catch
(ioexception e)
}}
public
class
requesthandler
implements
runnable
public
requesthandler
(object service, socket socket)
public object getservice()
public
void
setservice
(object service)
public socket getsocket()
public
void
setsocket
(socket socket)
@override
public
void
run(
)catch
(nosuchmethodexception
| ioexception | classnotfoundexception | illegalacces***ception | invocationtargetexception e)
finally
catch
(ioexception e)}if
(objectinputstream != null)
catch
(ioexception e)}}
}public object invoke
(object service, rpcrequest request)
throws classnotfoundexception, nosuchmethodexception, invocationtargetexception, illegalacces***ception
// 獲取方法物件
class<
?> clazz = class.
forname
(request.
getclassname()
);method method = clazz.
getmethod
(request.
getmethodname()
, paramstype)
;// 執行方法
object result = method.
invoke
(service, params)
;return result;
}}
public
class
main
}
client部分public
class
remoteinvocationhandler
implements
invocationhandler
public
remoteinvocationhandler
(string host,
int port)
@override
public object invoke
(object proxy, method method, object[
] args)
throws throwable
public object call
(rpcrequest request)
catch
(unknownhostexception
| classnotfoundexception e)
catch
(ioexception e)
finally
catch
(ioexception e)}if
(objectoutputstream != null)
catch
(ioexception e)}}
return result;
}}
public
class
rpcclient
,new
remoteinvocationhandler
(host, port));
}}
public
class
main
}
物件,物件集合的簡單Xml序列化與反序列化
物件,物件集合的簡單xml序列化與反序列化 本文描述如何使用clr中的 stringwriter,xmlserializer將物件,物件集合 序列化為xml格式的字串,同時描述如何進行 反序列化.c 版本 c 3.0 開發環境 vs 2008 主要方法 複製複製 複製儲存 usingsystem u...
C 的序列化和反序列化
序列化就是把乙個物件儲存到乙個檔案或資料庫欄位中去,而反序列化則是把這個檔案再轉化成原來的物件來使用,他的特點就是儲存為二進位制物件 bin檔案 優點就是容易儲存和取出。我們也可以理解為序列化就是儲存,反序列化就是取出。二進位制的關鍵字 binaryformatter 序列化關鍵字 serializ...
C 的序列化與反序列化
最近看了一下同事寫的 其中包含這麼乙個功能,叫序列化與反序列化。說一下概念,序列化 將資料結構或物件轉換成二進位制串的過程 反序列化 將在序列化過程中所生成的二進位制串轉換成資料結構或者物件的過程 很多情況下,我們需要將資料進行持久化操作,即將資料寫入到檔案中,我們可以通過io操作,或者序列化操作。...