Я делаю школьный проект с использованием розеток. Я уже работал с java, но я никогда раньше не использовал сокеты, поэтому я немного потерялся. Мы создаем простую программу гонки, которая получает обновления гонки, то есть кто превзошел, кто был превзойден, круг, имя человека, который обновляет и количество обновлений, сделанных до сих пор. Проблема, с которой я столкнулся, заключается в том, что нас просят преобразовать в 1 байт первые 4 переменные, но последнее (количество обновлений) мы должны преобразовать в 2 байта, и только тогда мы отправим обработчику. Я уже преобразовал в 1 байт четыре переменные таким образом (пример):
byte b = new Integer(lap).byteValue();
out.write(b);
Это работает, и мы должны поступать именно так. Вопрос может быть очевиден, но у меня проблемы с ним.
Всегда используйте Integer.valueOf вместо new Integer; но поскольку вы фактически просто качаете с new Integer(lap).byteValue(), (byte) lap эквивалентен.




Вот решение для двух байтов:
b[0] = (byte) lap;
b[1] = (byte) (lap >> 8);
вы можете использовать побитовые операции для этого