技术文摘
Java Socket通信中序列化与反序列化代码详解
Java Socket通信中序列化与反序列化代码详解
在Java的Socket通信中,序列化与反序列化起着至关重要的作用。它们使得对象能够在网络中进行传输和接收,实现了数据的有效交互。
我们来了解一下序列化。序列化是将对象转换为字节流的过程,以便在网络上传输或保存到文件中。在Java中,要实现序列化,对象所属的类必须实现java.io.Serializable接口。这个接口是一个标记接口,没有任何方法需要实现,它只是告诉Java虚拟机该类的对象可以被序列化。
下面是一个简单的示例代码,定义一个可序列化的类:
import java.io.Serializable;
class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 省略getter和setter方法
}
在发送端,我们需要将Person对象序列化并通过Socket发送出去:
import java.io.ObjectOutputStream;
import java.net.Socket;
public class Sender {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("localhost", 8888);
Person person = new Person("Alice", 25);
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject(person);
oos.close();
socket.close();
}
}
接下来是反序列化。反序列化是将字节流转换回对象的过程。在接收端,我们从Socket接收字节流并进行反序列化:
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Receiver {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
Person person = (Person) ois.readObject();
System.out.println("Received: " + person.getName() + ", " + person.getAge());
ois.close();
socket.close();
serverSocket.close();
}
}
通过上述代码,我们实现了在Java Socket通信中的序列化与反序列化,使得对象能够在网络中顺利传输和接收,为分布式应用开发提供了有力支持。
TAGS: 序列化 代码详解 反序列化 Java Socket通信
- Win11 如何退出管理员账号:已有账户的退出方法
- Win11 如何滚动截长图?Win11 电脑截长图指南
- Win11 如何关闭自动删除恶意文件?Win11 关闭自动删除危险文件的办法
- Win11 透明任务栏失效的两种解决办法
- 微软暂停推送 Win11 KB5007651 更新 因存在本地安全机构保护错误问题
- 微软本周无 Win11 Dev 或 Canary 新预览版本推送
- Win11 22H2 系统文件管理器自动弹出的解决之道
- Win11 系统率先为应用程序引入全新深度链接 URI
- Win11 KB5023774 更新致荒野大镖客 2 无法打开 微软给出临时唯一解决办法
- Win11 任务栏网络声音图标点击无响应如何解决
- Win11 Build 25330 预览版今日迎来更新:Surface Dial 设置页面优化
- Win11 系统无线投屏的开启方法及添加无线显示器的技巧
- Win11 KB5023778 推送 22621.1485 预览版更新内容汇总
- Win11 系统设置引入实验性的功能与特性
- Win11 系统色盲模式的设置与开启方法