Массив байтов, а не размер, который ".length" говорит, что это

Итак, у меня есть программа cient-сервера (java) для трансляции экрана сервера клиенту. Я конвертирую изображение в байтовый массив и отправляю его клиенту. У меня возникли проблемы с отправкой нескольких байтовых массивов, так как после того, как первый был отправлен и получен клиентом, я получаю ошибки для второго байтового массива. На стороне сервера у меня есть код:

                imageInByte=baos.toByteArray();
                outToClient.writeInt(imageInByte.length);
                System.out.println(Integer.toString(imageInByte.length));

Это сообщает клиенту размер входящего массива байтов. На клиенте у меня есть код:

            int c = inFromServer.readInt();
            System.out.println(Integer.toString(c));

Это все хорошо, и размер, который оценивается на сервере, равен размеру, который клиент получает и печатает, но когда я действительно пытаюсь записать байтовый массив в dataoutputstream, байтовый массив, который получает клиент, не похож на что-либо ".. длина "оценивается.

Например, первый байтовый массив называется 118207(без отправки фактического байтового массива.

Затем, когда я пытаюсь отправить первый байтовый массив клиенту, клиент получает его как 118207.

Второй, который без попытки фактической записи массива был 126205, но когда я пытаюсь записать объект, размер -2555936

Третий должен быть 125709, но выходит на клиенте как 1229324289 байт.

Это сводит меня с ума, и у меня должен быть проект в следующий четверг, и я не могу продолжать, не разбираясь с этим. Любая помощь будет принята с благодарностью, и если это странное расположение или вы не понимаете меня, просто задавайте вопросы. Спасибо.

0 ответов

Другие вопросы по тегам