上面同学说的对:
我认为这样的程序是没法运行的,既然你传输了对象,那么客户端接收时,肯定得有这样的类存在然后用这个类的引用变量去接收,张老师讲到过,双方必须都有约定俗成的语言,就是指双方必须定义相同的类。
我的理解错误。
使用ftp通信时,核心代码就是:
[code=java]//服务器
ServerSocket serverSocket = new ServerSocket(8000);
Socket socket = serverSocket.accept();
OutputStream oos = socket.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(oos);
oos.writeObject(new MyClasss());//MyClasss是自定义的一个类[/code]
[code=java]//客户机
Socket socket = new Socket("loaclhost",8000);
InputStream in = socket.getInputStream();
ObjectInputStream ois = new ObjectInputStream(in);
Object obj = ois.readObject();[/code]
确实,如果先启动服务器程序,再启动客户端程序(两者都用命令行指定classpath),客户端程序的classpath中无MyClasss的类文件,出现ClassNotException。
所以,“张老师讲到过,双方必须都有约定俗成的语言,就是指双方必须定义相同的类。”确实有道理。要有这个思维啊。 |