写一个通讯程序出现出现错误 java.io.EOFException错误
/*
* 这是服务器,它在监听,等待某个客户端来连接
*/
package com.qq.server.model;
import java.io.*;
import java.net.*;
import java.util.*;
import com.qq.common.*;
public class QQServer{
public QQServer(){
System.out.println("我是服务器,在9999号端口监听,,,");
ServerSocket ss;
try {
ss = new ServerSocket(9999);
while(true){
Socket s=ss.accept();
ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
ObjectInputStream ois=new ObjectInputStream(s.getInputStream());
User u=(User)ois.readObject();
System.out.println("服务器接收到用户ID "+u.getUserId()+" 密码 "+u.getPassword());
Message m=new Message();
if(u.getPassword().equals("123456")){
m.setMesType("1");
oos.writeObject(m);
ServerClientThread sct=new ServerClientThread(s);
System.out.println("创建线程");
sct.start();
}else{
m.setMesType("2");
oos.writeObject(m);
s.close();
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
==============================================================
/*
* 功能:是服务器和某个客户端的通信线程
*/
package com.qq.server.model;
import java.net.*;
import java.io.*;
import com.qq.common.*;
public class ServerClientThread extends Thread{
Socket s;
public ServerClientThread(Socket s){
this.s=s;
}
public void run(){
//该线程可以接受客户端的信息
while(true){
try {
ObjectInputStream ois=new ObjectInputStream(s.getInputStream());
Message m=(Message)ois.readObject();
System.out.println(m.getSender()+" "+m.getGetter()+" "+m.getCon()+" "+m.getSendTime());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
break;
}
}
}
}
为什么会出现错误:
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at com.qq.server.model.ServerClientThread.run(ServerClientThread.java:17)
ObjectInputStream ois=new ObjectInputStream(s.getInputStream());这一句哪儿错了