龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

通过socket传递java对象(对象序列化)

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
这篇文章主要实现的是j:通过socket传递Java对象。采用的方法就是对象序列化。方法是:通过socket建立c/s连接;通过ObjectOutputStream,ObjectOutputStream 读写对象。唯一需要留意的是传递的

  这篇文章主要实现的是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 ObjectInputStream(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 = new
  ObjectInputStream(pipe.getInputStream());
  
  ObjectOutputStream serverOutputStream = new
  ObjectOutputStream(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);
  }
  }
  
  }
  
精彩图集

赞助商链接