Разница между использованием функции сброса в сокете или нет (Java) - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь отправить массив объектов через сокет, но он не работает.Пока я искал ошибку, я попытался удалить функцию очистки и заметил, что программа перестала работать без каких-либо ошибок.Если я напишу эту функцию, я получу java.io.StreamCorruptedException: неожиданные данные блока в последней строке кода, который я собираюсь опубликовать.Вот оно:

        PrintWriter out = new PrintWriter(s.getOutputStream(), true);
        out.print(account + "\r\n"); // send the account name to server
        out.flush();


        /* PHASE 2: The client receives the ArrayList with the emails */
        ObjectInputStream inStream = new ObjectInputStream(s.getInputStream());
        email = (ArrayList<Email>) inStream.readObject();

Если я удалю out.flush (), программа перестанет работать в строке ObjectInputStream inStream = new ObjectInputStream (s.getInputStream ()); , бездавая любую ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...