package com.softeem.demo;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.ServerSocket;
import java.net.Socket;

class Student implements Serializable {
   private int sno;
   private String sname;

   public Student( int sno, String sname) {
     this.sno = sno;
     this.sname = sname;
  }
   public int getSno() {
     return sno;
  }
   public void setSno( int sno) {
     this.sno = sno;
  }
   public String getSname() {
     return sname;
  }
   public void setSname(String sname) {
     this.sname = sname;
  }
  @Override
   public String toString() {
     return "学号:" + sno + ";姓名:" + sname;
  }

}

class MyClient extends Thread {
  @Override
   public void run() {
     try {
      Socket s = new Socket( "localhost", 9999);
      ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
      Student stu = (Student) ois.readObject();
      System.out.println( "客户端程序收到服务器端程序传输过来的学生对象>> " + stu);
      ois.close();
      s.close();
    } catch (IOException e) {
      e.printStackTrace();
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
  }
}

class MyServer extends Thread {

  @Override
   public void run() {
     try {
      ServerSocket ss = new ServerSocket(9999);
      Socket s = ss.accept();
      ObjectOutputStream ops = new ObjectOutputStream(s.getOutputStream());
      Student stu = new Student(1, "赵本山");
      ops.writeObject(stu);
      ops.close();
      s.close();
      ss.close();
    } catch (IOException e) {
       // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

}

public class TestTransfer {
   public static void main(String[] args) {
     new MyServer().start();
     new MyClient().start();
  }
}
运行结果:客户端程序收到服务器端程序传输过来的学生对象>> 学号:1;姓名:赵本山