在做申請證書的時候,遇到了這個難點,怎麼使用socket傳輸乙個物件。
1、伺服器與客戶端都擁有同乙個物件(customer)且包名一致,如果不一致需要重寫io方法。
2、都必須實現serializable介面。
客戶端:
socket cilent=
newsocket
("127.0.0.1"
,9999);
outputstream out =client.
getoutputstream()
;objectoutputstream oout=
newobjectoutputstream
(out)
;oout.
writeobject
(cus)
;oout.
flush()
;oout.
close()
;
服務端
serversocket server=
newserversocket
(9999);
socket socket=server.
accept()
; objectinputstream objectinputstream =
newobjectinputstream
(socket.
getinputstream()
);customer customer=
(customer) objectinputstream.
readobject()
;
在這個過程,發現了乙個問題。
如果,在傳輸過程中,還沒有完成所有的資料交換,就關閉流的話,socket也會跟著關閉。
序列化與發序列化
1.序列化與反序列化都用的是相同的 binaryformatter bf new binaryformatter 2.使用 流 的方式 filestream fs new filestream 序列化內容路徑 一般為本地bin debug檔案中 類名.bin filemode.openorcreat...
序列化與反序列化
把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 eg stooges array moe larry curly new serialize stooges print r new echo print r unserial...
序列化與反序列化
序列化是將物件處理為位元組流以儲存物件或傳輸到記憶體 資料庫或檔案。其主要目的是儲存物件的狀態,以便可以在需要時重新建立物件。相反的過程稱為反序列化。通過序列化,開發人員可以儲存物件的狀態,並在需要時重新建立該物件,從而提供物件的儲存以及資料交換。通過序列化,開發人員還可以執行類似如下的操作 通過 ...