socket與序列化

2021-10-03 09:34:28 字數 946 閱讀 5572

在做申請證書的時候,遇到了這個難點,怎麼使用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...

序列化與反序列化

序列化是將物件處理為位元組流以儲存物件或傳輸到記憶體 資料庫或檔案。其主要目的是儲存物件的狀態,以便可以在需要時重新建立物件。相反的過程稱為反序列化。通過序列化,開發人員可以儲存物件的狀態,並在需要時重新建立該物件,從而提供物件的儲存以及資料交換。通過序列化,開發人員還可以執行類似如下的操作 通過 ...