2016-05-23 2 views
0

Я работаю над своим заданием в школе, делая игру Tic-Tac-Toe. Мой учитель запускает сервер, и мы взаимодействуем, отправляя объекты туда и обратно. Поскольку это школьный проект, я не могу опубликовать весь свой код, но вот конкретная часть, я получаю ошибку. Если я запускаю это в терминале, он отлично работает (я получаю объект с сервера).Подключение к разъему только в Eclipse, но не в терминале

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) 

Любая причина, почему она работает в терминале, но не в Затмении ??

ответ

0

Ваше чтение объекта в два раза, как описано here.

Eclipse, закрывает это соединение после получения obeject в первый раз, а затем, когда вы пытаетесь печатать его он бросает исключение из-за закрытого сокета.

Смежные вопросы