2012-06-27 66 views
-2

我们已经构建了一个系统适配器(客户端)和一个SUT(服务器)以便通过套接字在它们之间发送字符串消息。我的意图是做测试用例。 客户端发送一个命令,sut会做一些事情并发送响应。 一切都做得很好,但被送到第四响应后,通过在5日已被发送的时候,我遇到了以下问题:客户端服务器套接字通信

java.io.EOFException 
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source) 
at java.io.ObjectInputStream.readObject0(Unknown Source) 
at java.io.ObjectInputStream.readObject(Unknown Source) 
at Interface.run(Interface.java:131) 
at Interface.createAndShowGUI(Interface.java:382) //gui elements 
at Interface.access$0(Interface.java:378)   //gui elements 
at Interface$1.run(Interface.java:392)    //gui elements 
at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$000(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 

do {     
    message = (String) in.readObject(); 
    System.out.println("client-from server>" + message); 
    if (message.contains("endTC")) { 
      stateLabel.setText("OpenAndUnlocked"); 
    } 
    else if (message.contains("closed")) { 
      b1.doClick(); 
    } 
    else if (message.contains("lock")) { 
      b2.doClick(); 
      } else if (message.contains("open")) { 
        b3.doClick(); 
      } else if (message.contains("unlock")) { 
        b4.doClick(); 
      } else if (message.contains("exit")) { 
        sendMessage("Exiting"); 
      } 
} while (!message.equals("end")); //always loop 
+0

这墙文是一个问题? :\ – theBigChalk

+0

你已经省略了相关的代码 - 错误将涉及到'Interface.run'的定义,因为它显然期望有一个对象,但是找到流的结束。 –

+0

可以帮助也看到发送代码...显然另一方关闭了连接。 –

回答

0

readObject调用抛出java.io.EOFException因为它已经达到了“文件的末尾”。假设in流是连接到套接字输入流的,那只能意味着套接字连接已被另一端关闭。

相关问题