Я пытаюсь запрограммировать сообщение типа квитирования следующим образом, где C = Клиент S = Сервер:Byte Операции и Датаграммы в Java
C-->S: "I'd like to talk" //session initiation
S-->C: "80" //(n, randomly generated number)
C-->S: "81" //(n+1)
S: "does n= (n+1)-1?" //confirms the connection.
Для целей данного вопроса предположим, что логика выше правильно. Я хотел бы, чтобы случайное число, которое я сгенерировало, было 32-битным числом (т. Е. 4 байта, отправленного в дейтаграмме UDP). Так как INT 32 бита, я предпочел бы использовать этот тип данных, но мне кажется, бежать в одну из двух проблем:
- При использовании массива байт, легко отправить в дейтаграммах, но трудно для выполнения простой математической операции (например, вычитания 1) для 32-битного числа.
- При использовании int легко выполнить простую математическую операцию, но трудно преобразовать между ints и байтами при отправке туда и обратно между клиентом и сервером.
Я нашел метод, который может конвертировать из int в байты. Я нашел некоторую информацию об использовании Bytebuffer для преобразования в int, но я не уверен, что это даже правильно. Есть ли более простой способ сделать процесс отправки int в дейтаграмме? Похоже, что огромная работа заключается в том, чтобы продолжать конвертировать между байтами и ints.
Я не думаю, что у вас есть много выбора в отношении передачи информации в виде массива байт. Как еще вы можете его отправить? –