当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。 把Java对象转换为字节序列的
这篇文章主要实现的是j:通过socket传递Java对象。采用的方法就是对象序列化。方法是:通过socket建立c/s连接;通过ObjectOutputStream,ObjectOutputStream 读写对象。唯一需要留意的是传递的java 对象需要实现Serializable标记接口。代码包括:java对象类,Employee; socket client类;server类。主要代码如下:java对象类:import java.io.*;import java.util.*;public class Employee implements Serializable {private int employeeNumber;private String employeeName;Employee(int num, String name) {employeeNumber = num;employeeName= name;}public int getEmployeeNumber() {return employeeNumber ;}public void setEmployeeNumber(int num) {employeeNumber = num;}public String getEmployeeName() {return employeeName ;}public void setEmployeeName(String name) {employeeName = name;}}client类:import java.io.*;import java.net.*;public class Client {
public static void main(String[] arg) {
try {
Employee joe = new Employee(150, "Joe");
System.out.println("employeeNumber= "
joe .getEmployeeNumber());
System.out.println("employeeName= "
joe .getEmployeeName());
Socket socketConnection = new Socket("127.0.0.1", 11111);
ObjectOutputStream clientOutputStream = new
ObjectOutputStream(socketConnection.getOutputStream());
ObjectInputStream clientInputStream = new
Object理解Java对象序列化——Serializable接口
转自 http://chenfeng0104.iteye.com/blog/620554 JavaJDK 概述:当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法定义),表示该类可以序列化.序列化的目的是将一个实现了Serializable接口的对象InputStream(socketConnection.getInputStream());
clientOutputStream.writeObject(joe);
joe= (Employee)clientInputStream.readObject();
System.out.println("employeeNumber= "
joe .getEmployeeNumber());
System.out.println("employeeName= "
joe .getEmployeeName());
clientOutputStream.close();
clientInputStream.close();
} catch (Exception e) {System.out.println(e); }
}}Server类:import java.io.*;import java.net.*;public class Server {public static void main(String[] arg) {Employee employee = null;try {ServerSocket socketConnection = new ServerSocket(11111);System.out.println("Server Waiting");Socket pipe = socketConnection.accept();ObjectInputStream serverInputStream = newObjectInputStream(pipe.getInputStream());ObjectOutputStream serverOutputStream = newObjectOutputStream(pipe.getOutputStream());employee = (Employee )serverInputStream.readObject();employee .setEmployeeNumber(256);employee .setEmployeeName("John");serverOutputStream.writeObject(employee);serverInputStream.close();serverOutputStream.close();} catch(Exception e) {System.out.println(e);}}}上一篇: 关于session的详细解释下一篇: 从Rails的活动记录说说元数据编程http://www.west263.com以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!