套接字连接仅在Eclipse中重置,但在终端中不重置

时间:2016-05-23 23:24:34

标签: java eclipse sockets terminal

我正在完成学校作业,制作Tic-Tac-Toe游戏。我的老师正在运行服务器,我们通过来回发送对象进行交互。 由于它是一个学校项目,我无法发布我的整个代码,但这是我得到错误的特定部分。如果我在终端中运行它,它完全正常(我从服务器获取对象)。

ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
System.out.println(in.readObject()); // i get the name of the object

但是,如果我使用Eclipse运行完全相同的问题。 我收到错误:System.out.println(in.readObject())在第29行。

Exception in thread "main" java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:209)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.net.SocketInputStream.read(SocketInputStream.java:223)
    at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2303)
    at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2596)
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2606)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
    at here.TicTacToeClient.main(TicTacToeClient.java:29)

它在终端中运行但在Eclipse中运行的任何原因??

1 个答案:

答案 0 :(得分:0)

按照here.

所述,您对对象进行了两次阅读

Eclipse在第一次收到obeject后关闭它的连接,然后当你尝试打印它时,由于关闭的套接字而抛出异常。