public clientInfo connectToServerCheck(InetAddress ip,clientInfo info) throws ClassNotFoundException{//连接服务器并发送用户信息;
 clientInfo infoBack = null;
try {
  socketClient = new Socket(ip,9999);
  isConnect = true;
System.out.println("成功连接到服务器");
           ObjectOutputStream oop = new ObjectOutputStream(socketClient.getOutputStream());
           oop.writeObject(info);//把用户信息以对象流方式发送给服务器;
System.out.println("user:"+info.getNum());           ObjectInputStream oip = new ObjectInputStream(socketClient.getInputStream());
           infoBack = (clientInfo)oip.readObject();  //抛异常。。
//System.out.println("user:"+infoBack.getNum());   }catch(IOException e){
System.out.println("连接超时");
e.printStackTrace();
              isConnect = false;
  }
  
我做一个聊天器的,这段代码是:我把用户信息类info发送给服务器,oop.writeObject(info);服务器接收后进行是否合格的判断,然后再把设置好的用户信息以对象方式发回来给客户端,客户端接收infoBack = (clientInfo)oip.readObject(); ,开始进行下一步的判断,到infoBack = (clientInfo)oip.readObject(); 怎么跑出这个异常了呢??求解啊???成功连接到服务器
user:123
连接超时//????????????????????????怎么会突然断了呢????????
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 client.connectToServerCheck(client.java:36)
at loginFrame.actionPerformed(loginFrame.java:182)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

解决方案 »

  1.   

    at client.connectToServerCheck(client.java:36)
    at loginFrame.actionPerformed(loginFrame.java:182)
      

  2.   

    你的代码太乱了,异常也没有层次结构,顶层的异常是java.io.EOFException,建议好好看看读取socket的代码。
      

  3.   

    http://download.csdn.net/source/3220620楼主可以看看我写的哦……
      

  4.   


    java.io.EOFException  
     
    socket编程最常见的异常之一,按我的经验来看 经常是由于 客户端和服务器端的读写流不一致造成的.例如:
    服务器端:Dataoutput 流写
    客户端:ObjectInputStream 流读, 这样就可能发生 eofexception 建议楼主 仔细检查代码是否有上面的错误

      

  5.   

    IO异常,你的clientInfo这个类实现了序列化吗?有toString方法吗?贴你的clientInfo类代码