Я хочу отправить данные, которые я сериализовал через TCP-соединение.Я создал соединение клиент / сервер и отправляю объект после его сериализации.Тем не менее, я не знаю, как я должен читать данные.
вот фрагмент кода:
ФУНКЦИЯ ОТПРАВКИ:
sendTo(String receiverAddr, int receiverPort,....., Object data) {
.
.
.
if (data != null) {
byte[] byteObj = programming5.io.Serializer.serializeBytes(data);
output.writeInt(byteObj.length);
output.write(byteObj, 0, byteObj.length);
output.flush();
}
output.close();
sock.close();
}
Вызов функции:
String hostname = somevalue;
int portNo = somevalue;
Hashtable <Integer, Integer> object = somevalue;
sendTo(hostname,portNo,...,object);
Функция получения:
DataInputStream input = new DataInputStream(clientSocket.getInputStream());
int length = input.readInt();
byte[] bytes = new byte[length];
input.readFully(bytes);
Hashtable<Integer, Integer> recvObj = (Hashtable<Integer,Integer)programming5.io.Serializer.deserialize(bytes);
Это не работает.Я получаю следующее исключение:
неверный заголовок потока: 07F8ACED java.io.StreamCorruptedException: неверный заголовок потока: 07F8ACED
Скажите, пожалуйста, как мне поступить об этом.