在做一个类似qq的程序,用的TCP消息是以对象的形式发送的(定义的一个Message类)
由于需要后来又在Message类里加了一个Vector<User> vec,这里的User也是一个类(Message类和User类都implemets Serializable了),并新增了构造方法Message(int t,int i,Vector<User> vec)现在问题是sendMessage(new Message(type,id,vec))发送不出消息了,但是vec=null时又能发出去不知道问题出在哪,谁有类似经历或能给点建议啊,卡住了。
由于需要后来又在Message类里加了一个Vector<User> vec,这里的User也是一个类(Message类和User类都implemets Serializable了),并新增了构造方法Message(int t,int i,Vector<User> vec)现在问题是sendMessage(new Message(type,id,vec))发送不出消息了,但是vec=null时又能发出去不知道问题出在哪,谁有类似经历或能给点建议啊,卡住了。
楼主【cctdbnj】截止到2008-07-02 01:24:22的历史汇总数据(不包括此帖):
发帖的总数量:7 发帖的总分数:410
结贴的总数量:7 结贴的总分数:410
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
private int id;
private String psw;
private String nickname;
private int status;
private int image;
private String name;
private int age;
private String sex;
private String address;
private String phone;
private String introduce;
private String birth;
private String metier;
private String email;
private String mailnumber;
private String other;
User(int id,String nickname,int status,int image) {
this.id=id;
this.nickname=nickname;
this.status=status;
this.image=image;
}
User(int id,String nickname,int status,int image,String name,int age,String sex,
String address,String phone,String introduce,String birth,String metier,
String email,String mailnumber,String other) {
this.id=id;
this.nickname=nickname;
this.status=status;
this.image=image;
this.name=name;
this.age=age;
this.sex=sex;
this.address=address;
this.phone=phone;
this.introduce=introduce;
this.birth=birth;
this.metier=metier;
this.email=email;
this.mailnumber=mailnumber;
this.other=other;
}
public int getStatus() {
return status;
}
public String getNickname() {
return nickname;
}
}
2 发上你的发送代码看看
3 难道没有任何异常?
public void sendMsg(ObjectOutputStream oos,Message msg) {
try {
oos.writeObject(msg);
oos.flush();
}catch (IOException e) {
System.out.println("n5"+e);
}
}
// 这是在线程的run方法中
Message msg=null;
String tmStr=new String();
while ((msg=receiveMsg(ois))!=null) {
if (msg.getType()==0) {
System.out.println(linkStatus+"=xxxx="+tmStr);
}
if (msg.getType()==-1) { //接收含有Vector<User>的消息
//如果服务器端调用语句没有Vector<User>,如7楼所示,能打印下面语句
System.out.println("friends msg");
}
if (msg.getType()==2) {
System.out.println("friends test 2");
}
}
Message msg=null;
try {
msg=(Message)ois.readObject();
}catch (NullPointerException e) {
System.out.println(e);
}catch (ClassNotFoundException e) {
System.out.println(e);
}catch (IOException e){
System.out.println(e);
}
return msg;
}
java.io.InvalidClassException: User; local class incompatible: stream classdesc serialVersionUID = -3287261120039280208, local class serialVersionUID = -8234030305461437969应该是User类的问题,上面这句具体是什么意思还不是太明白。所以也不知道怎么改。
class User implements Serializable 改成class User看看