java socket方面的大神们求求你们啊!!你们这是在救命啊!!!

limhgege 2013-05-11 03:00:29
public void run() {
try {
String mess;
while (flag == true) {
try {
mess = user.getOis().readObject().toString();
String[] me = mess.split("[+]");
if (me[0].equals("Mess")) {
String sender = me[1];
String context = me[2];
String senddate = me[3];
Message newMess = new Message();
newMess.setUserno(user.getPhone());
newMess.setSender(sender);
newMess.setContext(context);
newMess.setSenddate(senddate);
ud.insert_mess(newMess);
int j = JOptionPane.showConfirmDialog(this.jf,
"有新短信是否立即查看?", "立即查看", JOptionPane.YES_OPTION,
JOptionPane.QUESTION_MESSAGE);

if (j == JOptionPane.YES_OPTION) {
com.mypack.user.Message message = new com.mypack.user.Message(
user);
RecThread rec = new RecThread(this.user, message);
rec.start();
message.setRec(rec);
message.setVisible(true);
this.jf.dispose();
this.stopThread();
}
} else {
System.out.println(Arrays.toString(me));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}catch(Exception e1){
e1.printStackTrace();
}

}
这段代码在debug as的时候没有问题,但是一run as 就会报下面的错误,
java.io.StreamCorruptedException: invalid type code: 0B
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at com.mypack.thread.RecThread.run(RecThread.java:40)
java.io.StreamCorruptedException: invalid type code: 00
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at com.mypack.thread.RecThread.run(RecThread.java:40)
java.io.StreamCorruptedException: invalid type code: 00
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at com.mypack.thread.RecThread.run(RecThread.java:40)
其中第40行也就是
mess = user.getOis().readObject().toString();

而且,在上面的那个判断语句怎么都能执行,在下面的else出的就执行不了,下面是服务器的发送代码
public void sendMess(List<ServUser> list, String[] str) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// Date date=new Date();
String date = sdf.format(new Date());
for (ServUser serv : list) {
if (serv.getPhoneno().equals(str[2])) {
try {
serv.getOos().writeObject("Mess+" + str[1] + "+" + str[3] + "+" + date);
serv.getOos().flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public void sendPhone(ServUser user, String mess){
String str1="phone";
try {
user.getOos().writeObject("phone+"+str1);
user.getOos().flush();
} catch (IOException e) {
e.printStackTrace();
}
}

sendMess()对应接受的if判断的那个并且没有出错,sendPhone()发送时出错了............
大神们看看这是怎么回事啊,跪求大神啦!!!java新手,代码乱了还请别见外!!!
...全文
67 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧