本篇内容介绍了“Java Socket通信的序列化和反序列化的实例介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
成都创新互联公司始终坚持【策划先行,效果至上】的经营理念,通过多达10年累计超上千家客户的网站建设总结了一套系统有效的全网营销解决方案,现已广泛运用于各行各业的客户,其中包括:成都小搅拌车等企业,备受客户赞美。
Java Socket通信要如何才能把序列化和反序列化做好呢?这个问题需要我们不断的进行学习有关代码,在以往的使用中有很多的经验值得我们学习。下面我们就详细的学习下有关的代码。
在Java Socket通信中,我们要在客户端和服务端中传输数据,传输的数据有各种类型,int,short,long以及String,甚至是自定义的各种Object,我们如何能够保证在服务端和客户端之间的数据能够使得两端都能理解,这就是所谓的“应用协议”;在通信的“管道”中,流的都是二进制数据,所以,双方如何约定好“解析规则”,则就必须要求通信双方都预先制定好协议;
序列化和反序列化
在Java Socket通信中,有一个借口Serializable接口,这个接口不需要实现实现任何方法,只是一个标识,Java 序列化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来。重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。
代码如下:
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通信的序列化和反序列化的实例介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!