java.io.StreamCorruptedException: invalid stream header:报错问题

szchenyuzhao 2015-12-27 07:24:09
我是新手,在做个小项目的时候出现了该问题,不知怎么解决,求大神解答
这是服务器端线程代码
package Service;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;

import Date.Date;
import Login.login;

public class ServiceThread implements Runnable{
private Socket socket;
public ServiceThread(Socket socket) {
this.socket = socket;
}


@Override
public void run() {
InputStream is;
try {
is = socket.getInputStream();
ObjectInputStream ois=new ObjectInputStream(new BufferedInputStream(is));
try {
Date date=(Date) ois.readObject();
//while(true){
if(date!=null){
System.out.println("date: " + date.getInstruct());
switch (date.getInstruct()) {
case "1"://!登录
System.out.println("----登录----");
date=(Date) ois.readObject();
if(date!=null){
Boolean b=login.login(date.getManager());
//System.out.println(date.getManager().getMgrUser());

if(b){
//登录成功
System.out.println("登录成功!");
}else{
//登录失败
System.out.println("用户账号密码错误!");
}
}else{
System.out.println("输入不能为空!");
}

break;
case "2"://退出
System.out.println("----退出----");
break;
default:
System.out.println("输入的指令有误!");
break;
}
}
//}

} catch (ClassNotFoundException e) {
e.printStackTrace();
}
ois.close();
} catch (IOException e) {
e.printStackTrace();
}

}


}


这是客户端代码
package Client;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

import Date.Date;
import Service.Manager;

public class Client{
private static Socket socket;
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
Date date=new Date();
String instruct=null;
//while(!instruct.equals("2")){
try {
socket=new Socket("192.168.0.106", 8888);
OutputStream os=socket.getOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(os);
System.out.println("请输入指令:");
instruct=in.next();
date.setInstruct(instruct);
oos.writeObject(date);
oos.flush();
if(instruct.equals("1")){
//登录
System.out.println("请输入用户名:");
String mgrUser=in.next();
System.out.println("请输入密码:");
String mgrPw=in.next();
date.setManager(new Manager(mgrUser, mgrPw));
oos.writeObject(date);
oos.flush();
}

} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}

//}
}

}

这是报的错误:
java.io.StreamCorruptedException: invalid stream header: 64000000
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
at Service.ServiceThread.run(ServiceThread.java:26)
at java.lang.Thread.run(Thread.java:745)
...全文
1266 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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