Отправка данных на клиент.

Mifesto

Прославленный
Проверенный
Web разработчик
Медаль за активность на Форуме
За знание ядра
Разработчик
За знание датапака
Сообщения
425
Розыгрыши
0
Решения
2
Репутация
1 583
Реакции
275
Баллы
1 483
Свои проблемы я порешал, но только из-за аналогии, может кто-то скажет что означает writeH writeD writeS writeC
Это отправка данных на клиент. Все данные отправляются в байтах, эти функции приводят нужный тип в байтовый массив и добавляют на отправку.

writeC - отправка byte (1 байт)
writeH - отправка short (2 байта)
writeD - отправка int (4 байта)
writeQ - отправка long (8 байт)
writeF - отправка double (8 байт)
writeS - отправка string (размерность зависит от строки, + 2 завершающих байт)
writeB - отправка непосредственно массив байт (размер зависит от размера массива)

так же в новых хрониках появились новые типы для отправки на клиент(у меня это):
writeN - отправка float (4 байта)
writeNS - отправка строки без завершающего байта (размер зависит от размера строки, без завершающих байт)
 
Последнее редактирование:
  • Мне нравится
Реакции: Grind

    GenCloud

    Баллов: 4
    Без комментариев

Это отправка данных на клиент. Все данные отправляются в байтах, эти функции приводят нужный тип в байтовый массив и добавляют на отправку.

writeC - отправка byte (1 байт)
writeH - отправка short (2 байта)
writeD - отправка int (4 байта)
writeQ - отправка long (8 байт)
writeF - отправка double (8 байт)
writeS - отправка string (размерность зависит от строки, + 1 завершающий байт)
writeB - отправка непосредственно массив байт (размер зависит от размера массива)

так же в новых хрониках появились новые типы для отправки на клиент(у меня это):
writeN - отправка float (4 байта)
writeNS - отправка строки без завершающего байта (размер зависит от размера строки, без завершающего байта)
Для одаренных:
Код:
protected void writeNS(String text) {
        if (text != null) {
            for (char c : text.toCharArray()) {
                _buf.putChar(c);
            }
        }
    }
Код:
protected void writeN(double value) {
        _buf.putFloat((float) value);
    }
 

    Mifesto

    Баллов: 2
    Без комментариев
Стоит помнить, то что в клиенте C & H - unsigned.
 
Ну и прежде всего отсылаемся на размерность типов данных в Java:
byte - boolean - 1 байт
char(не путать с char в Си) - short - 2 байта
int - float - 4 байта
long - double - 8 байт.

Так что, ТС, исправь в writeS с одного завершающего байта на два.
 
Ну и прежде всего отсылаемся на размерность типов данных в Java:
byte - boolean - 1 байт
char(не путать с char в Си) - short - 2 байта
int - float - 4 байта
long - double - 8 байт.

Так что, ТС, исправь в writeS с одного завершающего байта на два.

Спасибо за подсказку. Я долго размышлял в сомнениях, и решил все же поставить 1 байт.

П.С. Обновил первый пост.
 
Ну и прежде всего отсылаемся на размерность типов данных в Java:
byte - boolean - 1 байт
char(не путать с char в Си) - short - 2 байта
int - float - 4 байта
long - double - 8 байт.

Так что, ТС, исправь в writeS с одного завершающего байта на два.
В джаве булеан имеет размер 4 байта. Во всяком случае так было в J6.
Размер строки равен количество_символов*2 + 2, т.к. используется юникод ака widechar
 
Последнее редактирование:
В джаве булеан имеет размер 4 байта. Во всяком случае так было в J6.
че б*ть ?
да, логические значения обрабатываются как 32-битные лиц, но массивы переменных используйте 1 байт для каждого элемента.Более длинный ответ: JVM использует 32-битный стек ячейку, используется для хранения локальных переменных, аргументы метода и значения выражений. Примитивы, которые меньше, чем 1 ячейку дополняются из примитивы больше, чем 32 бита (длинные и двойной) принимать по 2 клетки. Этот метод минимизирует количество кодов операций, но есть некоторые специфические побочные эффекты (например, необходимость mask байт).Примитивы, хранящиеся в массивах можно использовать менее 32 бит, а есть разные инструкции загрузки и сохранения примитивные значения из массива. Логические и байт значения и использовать baload и bastore опкоды, который подразумевает, что логические массивы принять 1 байт для каждого элемента.Поскольку в памяти расположение объекта идет, это подпадает под "частной реализации" правила, это может быть 1 бит, 1 байт, или как еще один плакат отметил, выровнены по 64-битной двойной границе слова. Скорее всего, это занимает основное байтами базового оборудования (32 или 64 бит).
не ?
 
че б*ть ?
да, логические значения обрабатываются как 32-битные лиц, но массивы переменных используйте 1 байт для каждого элемента.Более длинный ответ: JVM использует 32-битный стек ячейку, используется для хранения локальных переменных, аргументы метода и значения выражений. Примитивы, которые меньше, чем 1 ячейку дополняются из примитивы больше, чем 32 бита (длинные и двойной) принимать по 2 клетки. Этот метод минимизирует количество кодов операций, но есть некоторые специфические побочные эффекты (например, необходимость mask байт).Примитивы, хранящиеся в массивах можно использовать менее 32 бит, а есть разные инструкции загрузки и сохранения примитивные значения из массива. Логические и байт значения и использовать baload и bastore опкоды, который подразумевает, что логические массивы принять 1 байт для каждого элемента.Поскольку в памяти расположение объекта идет, это подпадает под "частной реализации" правила, это может быть 1 бит, 1 байт, или как еще один плакат отметил, выровнены по 64-битной двойной границе слова. Скорее всего, это занимает основное байтами базового оборудования (32 или 64 бит).
не ?
Открываем сурс JVM и смотрим. И да, не следует копипастить сюда всякие говно переведенное через транслит гугла, возможно стоит пополнить словарный запас словом мемори паддинг. Опять же, я говорил не про паддинг, хоть он и присутствует при работе с типами переменных.
/Дезе выдыхай, опять несешь дикую хрень, а в руках флаг, лол.
 
Открываем сурс JVM и смотрим. И да, не следует копипастить сюда всякие говно переведенное через транслит гугла, возможно стоит пополнить словарный запас словом мемори паддинг. И да, я говорил не про паддинг, хоть он и присутствует при работе с типами переменных.
если и какая то часть бралась ну может мой рунглиш транслейтер подводит, но гуглом тут и не пахнет.
и але про версии тоже не приплетай
Since:
JDK1.0
 
если и какая то часть бралась ну может мой рунглиш транслейтер подводит, но гуглом тут и не пахнет.
и але про версии тоже не приплетай
Since:
JDK1.0
УПРТ? Ты мне показываешь врапер. Открой исходник JVM и смотри. Реализация самого примитива лежит полностью на JVM, ее нет в rt
 
УПРТ? Ты мне показываешь врапер. Открой исходник JVM и смотри. Реализация самого примитива лежит полностью на JVM, ее нет в rt

Ну я пытаюсь , как то без успешно

ну и начнем с того что нам доступно OpenJdk , сан в 2006 том если паять не изменяет выбросила хост спот
 

Ну я пытаюсь , как то без успешно

ну и начнем с того что нам доступно OpenJdk , сан в 2006 том если паять не изменяет выбросила хост спот
 
В общем, почитал на хабре, и вправду бул в джаве размером в 4 байта. Но если его отправлять как часть пакета, то он прилетит/улетит в виде byte 00/01.
 
:/ ну ок
 
Ну как обычно, залупу сморозишь, а потом: оп, я обосрался, простите
P.S. наркоманы они такие
А можно по факту , плиз. Что именно , вас так не устроило. Можно более конкретней - именно что вас в данном диалоге пустило сомнение.Почему вы решил все таки что я не прав, я например могу бул привести вообще в 1 бит(булевая алгебра, ну я хз, может в 9том классе ты закладывал за воротник). Проблемы не вижу , вас кол во данных привлекло или их интерпретация ?
 
Последнее редактирование:
А можно по факту , плиз. Что именно , вас так не устроило. Можно более конкретней - именно что вас в данном диалоге пустило сомнение.Почему вы решил все таки что я не прав, я например могу бул привести вообще в 1 бит(булевая алгебра, ну я хз, может в 9том классе ты закладывал за воротник). Проблемы не вижу , вас кол во данных привлекло или их интерпретация ?
1) Суббординация - самое главное в общении, поэтому прошу Вас её соблюдать. Я Вам не какой-нибудь школьник.
2) Данных??? Враперы??? На что Вы ссылки указали??? Бред. Это как писать дипломную не соответствующую теме. Два мсье.
3) Бул значение всегда отсылает 4 байта. Да не со мневаюсь его можно изменить, но факт остаётся фактом.
Вопрос исчерпан?
Пы.Сы. если бы Вы не начали нести бред и всех посылать на зоне из-за своей упоротости, я бы слова Вам в жизни не сказал.
 
Последнее редактирование модератором:
3) Бул значение всегда отсылает 4 байта. Да не со мневаюсь его можно изменить, но факт остаётся фактом.
Кто и куда отсылает, умоляю вас, расскажите. Я правда не знаю.
 
Тип boolean в java кастится JVM в Integer и занимает в памяти 4 байта.
Это не сикрет вовсе, в любой книжке написано.
 
Назад
Сверху Снизу