JAVA 实现 服务器端与客户端 对象流传输?

//-----------------服务器端TestServerObjeectTrans类用于接受客户端传送过来的对象User,然后打印输出-------package... // ----------------- 服务器端 TestServerObjeectTrans 类用于接受客户端传送过来的对象User,然后打印输出 -------

package com.test.server;

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

public class TestServerObjeectTrans {

public TestServerObjeectTrans(){
try {
System.out.println("服务器端正在监听 9999") ;
ServerSocket server = new ServerSocket(9999) ;
Socket client = server.accept() ;
ObjectInputStream ois = new ObjectInputStream(client.getInputStream()) ;
System.out.println(ois) ;
[color=#FF0000]User user = (User)ois.readObject() ;[/color] // 运行此处发生类型转换异常
System.out.println("从客户端接受过来的USER对象:" + user.getUser() + " , " + user.getPass()) ;
client.close() ;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new TestServerObjeectTrans() ;
}

}

// 服务器端 User 对象
package com.test.server;

import java.io.Serializable;

public class User implements Serializable {

private String user ;
private String pass ;

public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}

}

// ----------------- 客户端 TestClientObjectTrans类用于给服务器端传送User对象 -------

package cn.lxzp.turn;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class TestClientObjectTrans {

public TestClientObjectTrans(){
try {
Socket client = new Socket("127.0.0.1" , 9999) ;
ObjectOutputStream out = new ObjectOutputStream(client.getOutputStream()) ;
User user = new User() ;
user.setUser("admin") ;
user.setPass("admin") ;
out.writeObject(user) ;
client.close() ;
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

public static void main(String[] args) {
new TestClientObjectTrans() ;
}

}

// 客户端User对象
package cn.lxzp.turn;

import java.io.Serializable;

public class User implements Serializable{

private String user ;
private String pass ;

public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}

}

服务器端监听 ,等待客户端连接,传送User 对象!
首先服务器端运行,然后客户端运行。

运行异常:

服务器端正在监听 9999 // 此句打印出来了。
java.io.ObjectInputStream@c21495
java.lang.ClassNotFoundException: cn.lxzp.turn.User // 转换异常

从运行结果可以看出来是 类转换异常,服务器和客户端都定义了相同的User 对象,而且已经都序列
展开
 我来答
wangjia4202
2011-06-15
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
这个,在客户端和服务端都要有cn.lxzp.turn.User的定义。
你把客户端的这个类编译好后,引入到服务端的类路径里面。

简单来说就是把User类编译,打包成jar文件,拷到服务端,添加到服务端的类路径里面去。
Melody_PT
2011-06-15
知道答主
回答量:32
采纳率:0%
帮助的人:7万
展开全部
000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liubinny
2011-06-15 · TA获得超过777个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:131万
展开全部
因为服务器端没有 cn.lxzp.turn.User 这个对象。 你在服务器端定义的User 是在 com.test.server.User 不是 cn.lxzp.turn.User . 在转换过程中肯定报 找不到 Class
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alex_linxh
2011-06-16 · 超过11用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:22.2万
展开全部
1111
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式