您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Java Socket通信的序列化和反序列化的實例介紹”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
Java Socket通信要如何才能把序列化和反序列化做好呢?這個問題需要我們不斷的進行學(xué)習(xí)有關(guān)代碼,在以往的使用中有很多的經(jīng)驗值得我們學(xué)習(xí)。下面我們就詳細(xì)的學(xué)習(xí)下有關(guān)的代碼。
在Java Socket通信中,我們要在客戶端和服務(wù)端中傳輸數(shù)據(jù),傳輸?shù)臄?shù)據(jù)有各種類型,int,short,long以及String,甚至是自定義的各種Object,我們?nèi)绾文軌虮WC在服務(wù)端和客戶端之間的數(shù)據(jù)能夠使得兩端都能理解,這就是所謂的“應(yīng)用協(xié)議”;在通信的“管道”中,流的都是二進制數(shù)據(jù),所以,雙方如何約定好“解析規(guī)則”,則就必須要求通信雙方都預(yù)先制定好協(xié)議;
序列化和反序列化
在Java Socket通信中,有一個借口Serializable接口,這個接口不需要實現(xiàn)實現(xiàn)任何方法,只是一個標(biāo)識,Java 序列化技術(shù)可以使你將一個對象的狀態(tài)寫入一個Byte 流里,并且可以從其它地方把該Byte 流里的數(shù)據(jù)讀出來。重新構(gòu)造一個相同的對象。這種機制允許你將對象通過網(wǎng)絡(luò)進行傳播,并可以隨時把對象持久化到數(shù)據(jù)庫、文件等系統(tǒng)里。
代碼如下:
Person: import java.io.Serializable; import java.util.Date; public class Person implements Serializable { private String name; private int tall; private transient Date birthday; private Address address; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getTall() { return tall; } public void setTall(int tall) { this.tall = tall; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } } Address: package stream.demo; import java.io.Serializable; public class Address implements Serializable{ private String city; private String street; public Address() { } public Address(String city, String street) { this.city = city; this.street = street; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } } Person: import java.io.Serializable; import java.util.Date; public class Person implements Serializable { private String name; private int tall; private transient Date birthday; private Address address; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getTall() { return tall; } public void setTall(int tall) { this.tall = tall; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } } Address: package stream.demo; import java.io.Serializable; public class Address implements Serializable{ private String city; private String street; public Address() { } public Address(String city, String street) { this.city = city; this.street = street; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; }
“Java Socket通信的序列化和反序列化的實例介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。