У меня есть довольно сбивающая с толку проблема, в которой у меня есть розетка, соединяющая две стороны с объектно -аудитористом и объектно -объект, и эти стороны должны обмениваться несколькими большими объектами или массивами объектов друг с другом. Однако иногда он висит в функции, которая выглядит похожей на это: < /p>
Object[] sendData(Object largeObject, Object[] arrayOfBigThings,
ObjectInputStream in, ObjectOutputStream out) throws IOException, ClassNotFoundException {
Object[] toReturn = new Object[2];
out.writeObject(largeObject);
out.flush();
toReturn[0] = in.readObject();
out.writeObject(arrayOfBigThings);
out.flush();
toReturn[1] = in.readObject();
return toReturn;
}
< /code>
Обе стороны называют эту функцию для обмена своими объектами. Я измерил связь, и она колеблется от 2 до 10 МБ, когда я заменяю разъем на файл (с соответствующей перестановкой вызовов). < /P>
Я попробовал несколько вариантов, например, добавление. Reset () после вызовов in.readObject (). Когда он висит, и я заканчиваю один из процессов, он всегда перечисляет одну из двух вызовов Out.writeObject в качестве источника прерванного исключения подключения. Они используют один и тот же порт каждый раз. Программа работает на одном компьютере, поэтому IP - 127.0.0.1.
Подробнее здесь: https://stackoverflow.com/questions/796 ... gh-sockets