im писать приложение клиент/сервер, которые обмениваются данными через сокет tcp. и im сталкиваются с проблемой сейчас на заключительных этапах моей работы. проблема в том, что у меня есть arrayList<object>
на сервере, и я пытаюсь его сериализовать с помощью jackson
и отправить его клиенту. он отлично работает, когда массив имеет только один объект в нем. но когда в моем будет два объекта или больше, сервер будет правильно отправлять его клиенту, но на стороне клиента он выглядит как im, не получающий ничего, он все равно будет застревать на read()
, так как ничего не получает.невозможно прочитать из входного сокета потока в java
im также промывка выходного потока. и сериализация верна, я вижу.
Я должен упомянуть, что im отправляет и принимает все другие вещи отлично, но у меня только проблема с ArrayLists
, которая включает в себя более одного объекта в них.
вот как им отправка данных (это не проливает ошибки и отправить его tottaly правильно):
write(Repository.clone(mainServer.findSpecifidUsername(repository.getSelf().getLoginForm().getUsername()), repository));
здесь функция записи:
public boolean write (String string)
{
try
{
this.streamOut.writeUTF(string);
streamOut.flush();
return true;
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
return false;
}
}
и вот как им читать его на клиентской стороне:
String json = User.communicationConnection.read();
и здесь есть функция чтения:
public String read()
{
String string;
try
{
string = this.streamIn.readUTF();
return string;
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
return null;
}
Просьба предоставить сериализованные строки, в которых есть один объект в массиве и пара объектов в массиве. Какую функцию вы используете для отправки данных? – dezhik
А какой поток вы используете для чтения/записи? – Jan
спасибо, ребята, это было потому, что длина струны была очень большой. –