日期:2014-05-20  浏览次数:21173 次

java.io.EOFException这是个什么异常应该怎么解决?
第一个类
public functionserver(int port)
  {
  this.port =port;
  try{
ss = new ServerSocket(port);
System.out.println("服务器套接字已经创建成功");
       //收到信息后处理
 while(true){            
Socket s = ss.accept();
    ObjectInputStream  ois = new ObjectInputStream (s.getInputStream());
    ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
    User come = (User)ois.readObject();
   if( come.getMark().equals("denglu"))
    {
   Login end = new Login(come.getName(),come.getPass());
       System.out.println("登录");
   boolean b = end.judgeLogin();      //b是一个标记判断密码正不正确
   message ms = new message();
   if(b == true)                      //密码正确返回类型一并且创建通信
   {
   ms.setMesstype(1);
   oos.writeObject(ms);
   chatfunction chat = new chatfunction(s);
 
   }

第二个类
package qq.server;
import java.net.*;
import java.io.*;
import qq.common.*;
public class chatfunction implements Runnable{
 
  private Socket s;

  public chatfunction(Socket s)
  {
  this.s = s;
  Thread t = new Thread (chatfunction.this);
  t.start();
  }

@Override
public void run() {
// TODO Auto-generated method stub
while(true)
{
  try {
 ObjectInputStream chatois = new ObjectInputStream(s.getInputStream());  message ms = (message)chatois.readObject();
 System.out.println("发送人"+ms.getSender()+"收到人"+ms.getGetter()+"消息内容"+ms.getCont());
  } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
  

  }
}
 }
}
红色那行出错了
报出的错误

java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
at qq.server.chatfunction.run(chatfunction.java:22)
at java.lang.Thread.run(Thread.java:619)

请高人指点  如果有需要的话可以家我QQ329956247我可以给他源代码改,改对了我马上给分谢谢。

------解决方案--------------------
EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致异常。
看你的代码,估计是socket没有正确创建,建议调用之前先检查socket的状态,状态正确再调用getInputStream。好久没有用socket,记得不清楚了。

------解决方案--------------------
end of file?
------解决方案--------------------