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);    
        }    
    }    
}   

解决方案 »

  1.   

    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("li");    
                serverOutputStream.writeObject(employee);    
                serverInputStream.close();    
                serverOutputStream.close();    
            } catch (Exception e) {    
                System.out.println(e);    
            }    
        }    
    }   
      

  2.   

    public class Employee implements Serializable {  }传递的对象要实现序列化接口!
      

  3.   

    我想,还是传递xml文件更好一点,兼容性更高。java 自己也提供了把Object转化为xml的类XMLEncoder 和 XMLDecoder
    http://www.java2000.net/p2497
      

  4.   

    一定要用socketConnection连接吗?
    用SocketServer不行吗?
      

  5.   

    我要传的类是数组的形式,用for循环做的,解决不了问题呀?类是序列化的
    SERVER:
    ServerListener(Socket t) throws IOException{
    this.socket = t;
    in = new ObjectInputStream(socket.getInputStream());
    out = new ObjectOutputStream(socket.getOutputStream());
    }

    public void run() {
    dao = new CSDAO();
    Opertor[] opertor;
    try {
    opertor = dao.getAllOpertor();//从数据库获得数据
    for(int i=0;i<opertor.length;i++){
    out.writeObject(opertor[i]);
    }
    } catch (Exception e) {}
    finally{
    try {
    in.close();out.close();
    } catch (IOException e) {}
    }
    }
    CLIENT:
    public ClientConnection(String id) throws CsException, IOException {
    address = new NetAddress();
    inet = address.getNetAddress(id);
    socket = new Socket(inet,1245);
    }

    public Opertor[] getOpertorName() throws CsException, IOException,ClassNotFoundException {
    in = new ObjectInputStream(socket.getInputStream());
    out = new ObjectOutputStream(socket.getOutputStream());
    Opertor opertor[] = new Opertor[3];//数组为3个,不越界
    for(int i=0;i<3;i++){
      opertor[i] = (Opertor) in.readObject();
    }
    in.close();out.close();
    return opertor;
    }