Как передать с сервера клиенту данные типа Object?

Я создаю компьютерную игру и недавно начал делать для неё сервер. Всё задумывалось так: клиент включает игру на своем компьютере и регистрирует свой аккаунт, программа отправляет объект типа String на сервер, сервер его принимает и отсылает клиенту готовый зарегистрированный и сохраненный аккаунт. Но вот беда, через Socket можно передавать только данные типов String и int!

Сервер отсылает объект типа Account клиенту:
ServerSocket serverSocket = new ServerSocket(port);
Socket socket = serverSocket.accept();
PrintWriter writer = new PrintWriter(socket.getOutputStream());
writer.println(new Account);
writer.close();

Клиент же пытается получить его, однако возникают проблемы:
Socket socket = new Socket(host, port);
InputStreamReader streamReader = new InputStreamReader(socket.getInputStream());
BufferedReader bufferedReader = new BufferedReader(streamReader);
Account account = (Account) bufferedReader.read(); //Не работает, так как является типом int
bufferedReader.close();


Что же с этим делать? Есть ли какие-то другие способы перенесения данных от сервера к клиенту? Я слышал, что с этим как-то может помочь сериализация, но так и не понял, как.
  • Вопрос задан
  • 353 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Сериализация.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы